【发布时间】:2020-07-11 14:18:59
【问题描述】:
希望你们一切都好。我正在尝试在 Mern 中创建一个更新功能,当我在 Postman 上尝试它时它工作正常,但是当我尝试用 React 实现它时,它没有给我任何结果,也没有给我任何错误。我无法弄清楚我做错了什么。如果这里的任何人都可以通过查看我的代码来弄清楚它有什么问题,那将是很大的帮助。提前非常感谢。
import { getANews, updateNews } from "../../actions/news";
const Edit = ({ router }) => {
const [websiteCategory, setWebsiteCategory] = useState("");
useEffect(() => {
initNews();
}, [router]);
// get a single news to make changes on it
const initNews = () => {
if (router.query._id) {
getANews(router.query._id).then((data) => {
if (data.error) {
console.log(data.error);
} else {
setWebsiteCategory(data.websiteCategory);
}
});
}
};
const onChangeWebsiteCategory = (event) => {
setWebsiteCategory( event.target.value);
};
// update the category field in this particular news
const editNews = (event) => {
event.preventDefault();
updateNews(router.query.id, websiteCategory).then((data) => {
if (data.error) {
console.log("error");
} else {
console.log(websiteCategory);
console.log(data);
}
});
};
return (
<div>
<h3>Edit News</h3>
<form onSubmit={editNews}>
<div className="form-group">
<label>Website-Category </label>
<input
type="text"
className="form-control"
defaultValue={websiteCategory}
onChange={onChangeWebsiteCategory}
/>
</div>
<div className="form-group">
<input type="submit" value="Edit News" className="btn btn-primary" />
</div>
</form>
</div>
);
};
export default withRouter(Edit);
编辑:感谢您的回复,下面是完整的代码。希望这可以帮助你帮助我:)
这是我的行动/新闻文件
import fetch from "isomorphic-fetch";
import { API } from "../config";
// API = http://localhost:3000/
export const getANews = (id) => {
return fetch(`${API}/news/${id}`, {
method: "GET",
})
.then((response) => {
return response.json();
})
.catch((err) => console.log(err));
};
export const updateNews = (id) => {
return fetch(`${API}/news/${id}`, {
method: "POST",
headers: {
Accept: "application/json",
},
})
.then((response) => {
return response.json();
})
.catch((err) => console.log(err));
};
【问题讨论】:
-
请编辑您的问题以包含
updateNews -
你想更新什么?错误是什么?请指定必要的信息!
-
你能显示你的 updateNews() 操作的代码吗?
标签: javascript reactjs mongodb crud mern