Arrays 我能';t了解如何使用React中的map函数编辑数组项
因此,我几天来一直在努力解决以下问题:Arrays 我能';t了解如何使用React中的map函数编辑数组项,arrays,reactjs,use-state,use-reducer,Arrays,Reactjs,Use State,Use Reducer,因此,我几天来一直在努力解决以下问题: movies [ { id: 1, name: 'Alpha', rating: 0 }, { id: 2, name: 'Bravo', rating: 0 }, { id: 3, name: 'Charlie', rating: 0 } ] 我已经有办法在这个数组中添加和删除电影,但我希望每个项目都有一个输入部分,其中分级状态将更新为输入值。我一直在使用“use
movies [
{
id: 1,
name: 'Alpha',
rating: 0
},
{
id: 2,
name: 'Bravo',
rating: 0
},
{
id: 3,
name: 'Charlie',
rating: 0
}
]
我已经有办法在这个数组中添加和删除电影,但我希望每个项目都有一个输入部分,其中分级状态将更新为输入值。我一直在使用“useReducer”来帮助解决这个问题,但我想我只是不确定语法/负载是什么
我知道有一种制作电影的方法。map(movie=>{etc.etc}但我似乎无法理解。非常感谢您的帮助
编辑:
{movies.map(movie=>(
{movie.name}
))}
我希望输出看起来像这样,{movie.rating}对象的状态在输入更改时更新如果您将电影用作组件状态,则可以将其传递给
onChange
函数:
const updateRatingOnly = (id,rating) => {
movies = movies.map(movie => {
if(movie.id === id){
return{...movie, rating}
}
return movie
})
setMovies(movies)
//or
this.setState({movies})
}
通过将函数与事件链接起来,您可以很容易地做到这一点。因此,您的事件处理程序如下所示:
consthandleratingchange=(movie)=>({target:{value})=>{
//用户教育逻辑
//电影=电影名称
//价值=新评级
};
{movies.map(movie=>(
{movie.name}
))}
请发布所需的输出``{movies.map(movie=>({movie.name}))}``类似这样的内容,其中movie.rating对象的状态在输入更改时更新谢谢这帮了大忙!我通过稍微更改代码``const-handleRatingChange=(e,rating,id)=>{setMovies(movies.map)使其正常工作(movie=>{if(movie.id==id){return{…movie,rating:e.target.value}}}return movie})console.log(movies,rating,id)}``谢谢您的帮助!!
const updateRatingOnly = (id,rating) => {
movies = movies.map(movie => {
if(movie.id === id){
return{...movie, rating}
}
return movie
})
setMovies(movies)
//or
this.setState({movies})
}