Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 我能';t了解如何使用React中的map函数编辑数组项_Arrays_Reactjs_Use State_Use Reducer - Fatal编程技术网

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})
}