【发布时间】:2021-12-14 12:35:03
【问题描述】:
我有一个向我的自定义 Flask API 发送数据的 React 应用。
const params = {
id: this.props.user.uid,
title: movie.title,
movie_id: parseInt(movie.id, 10),
photo: "https://image.tmdb.org/t/p/w500/" + movie.backdrop_path,
year: parseInt(movie.release_date.split("-")[0], 10),
rating: parseInt(parseFloat(movie.vote_average) * 10, 10),
overview: movie.overview,
genres: genres
};
当我打印出params.genres 时,它会显示类似["Fantasy", "Comedy"] 的内容。
但是当我发布它时:
axios.post("http://localhost:5000/user", params).then((data) => {
有效载荷是:
{"id":"id","title":"The Watch","movie_id":80035,"photo":"urltoimage","year":2012,"rating":55,"overview":"overview","genres":[]}
所有值都是正确的,除了流派。在我的后端它也是这样说的。 怎么了?
我的全部功能:
addMovie(movie) {
//get more data from tmdb
var genres = [];
axios
.get(
"https://api.themoviedb.org/3/movie/" +
parseInt(movie.id, 10),
{
params: {
api_key: "dontsteelmytmdbkey;)",
},
}
)
.then((req) => {
for (let i = 0; i < req.data.genres.length; i++){
genres.push(req.data.genres[i].name);
}
});
console.log(genres);
const params = {
id: this.props.user.uid,
title: movie.title,
movie_id: parseInt(movie.id, 10),
photo: "https://image.tmdb.org/t/p/w500/" + movie.backdrop_path,
year: parseInt(movie.release_date.split("-")[0], 10),
rating: parseInt(parseFloat(movie.vote_average) * 10, 10),
overview: movie.overview,
genres: genres
};
console.log(params.genres);
axios.post("http://localhost:5000/user", JSON.stringify(params)).then((data) => {
if (data.data.code === 112) {
// success alert
console.log("success alert");
// remove movie from list
let newMovies = this.state.movies;
for (let i = 0; i < newMovies.length; i++) {
if (newMovies[i].id === movie.id) {
newMovies.splice(i, 1);
}
}
this.setState({ movies: newMovies });
} else {
console.log("Backend error");
console.log(
"Error: " + data.data.code + " - " + data.data.errno
);
this.setState({
showAlert: true,
alertSeverity: "error",
alertText: this.state.alertServerError,
});
}
});
// dont redirect
//this.props.history.push("/");
}
【问题讨论】:
-
你能分享你的整个代码,包括流派数组,然后我可以看看吗?
-
我上传了我的整个添加函数
-
console.log(genres)和console.log(params.genres)都返回了一系列类型,正如我之前所说的
标签: javascript arrays reactjs json axios