blob: 1ac2d840724f1f0f8182ff33835c6ff298619b78 [file] [log] [blame]
Krishyae71688a2025-04-10 21:25:17 +08001// src/pages/Forum/CreatePost.jsx
2import React, { useState } from 'react';
3import axios from 'axios';
4
5const CreatePost = ({ userId }) => {
6 const [title, setTitle] = useState('');
7 const [content, setContent] = useState('');
8 const [imageUrl, setImageUrl] = useState('');
9
10 const handleSubmit = async (e) => {
11 e.preventDefault();
12
13 try {
14 const postData = {
15 title,
16 Postcontent: content,
17 };
18
19 if (imageUrl.trim()) {
20 postData.imgerrul = imageUrl;
21 }
22
23 const response = await axios.post(
24 `/echo/forum/posts/${userId}/creatPost`,
25 postData
26 );
27
28 if (response.status === 201) {
29 alert('帖子创建成功!');
30 // 清空表单或跳转页面
31 setTitle('');
32 setContent('');
33 setImageUrl('');
34 }
35 } catch (error) {
36 console.error('帖子创建失败:', error);
37 alert('创建失败,请重试');
38 }
39 };
40
41 return (
42 <div className="create-post">
43 <h2>创建新帖子</h2>
44 <form onSubmit={handleSubmit}>
45 <div>
46 <label>标题:</label>
47 <input
48 type="text"
49 value={title}
50 onChange={(e) => setTitle(e.target.value)}
51 required
52 />
53 </div>
54 <div>
55 <label>内容:</label>
56 <textarea
57 value={content}
58 onChange={(e) => setContent(e.target.value)}
59 required
60 />
61 </div>
62 <div>
63 <label>图片 URL(可选):</label>
64 <input
65 type="text"
66 value={imageUrl}
67 onChange={(e) => setImageUrl(e.target.value)}
68 />
69 </div>
70 <button type="submit">发布</button>
71 </form>
72 </div>
73 );
74};
75
76export default CreatePost;