【发布时间】:2020-08-20 19:01:08
【问题描述】:
所以我正在尝试为我和我的朋友创建一个电影投票应用程序。我在 react 中设置了大部分应用程序,但我不知道如何设置/更新“评级”对象的状态。
数组设置如下:
import React, { useState, createContext } from 'react';
export const MovieListContext = createContext();
export const MovieListProvider = (props) => {
const [movieList, setMovieList] = useState([
{
name: "Test",
rating: ""
},
{
name: "Testing",
rating: ""
},
{
name: "Tester",
rating: ""
},
]);
return (
<MovieListContext.Provider value={[movieList, setMovieList]}>
{props.children}
</MovieListContext.Provider>
)
}
然后我希望能够覆盖数组并使用我们的每个评级更新评级对象
import React, { useState, useContext } from 'react';
import Movie from './Movie'
import {MovieListContext} from "../MovieListContext";
import VotingCandidates from "./VotingCandidates";
const VotingForm = () => {
const [movieList, setMovieList] = useContext(MovieListContext);
const handleRatingChange = (e, movieList) => {
setMovieList([...movieList, {rating: e.target.value}]);
console.log(movieList)
}
return (
<div>
{movieList.map(movieList => (
<li key={movieList.name}>{movieList.name}
<input onChange={handleRatingChange} type="text"/>
</li>
))}
<button>VOTE</button>
</div>
)
}
export default VotingForm
我想不出办法让movieList.rating 对象的状态能够更新
【问题讨论】:
标签: javascript arrays reactjs