首页 > 解决方案 > 当我使用 setstate 调用函数时,状态值不会改变

问题描述

addTOList= (id) =>{
  const movieId = id
  const movie = movies.find( ({ id }) => id === movieId );
  const stateMovie = [...this.state.movie, movie]
  console.log(stateMovie)
  this.setState({
    movie : stateMovie
  })
  console.log(this.state.movie)
  localStorage.setItem('movies', JSON.stringify(this.state.movie))
  this.state.movie.map(mov =>{
  })
}

单击(添加到列表)按钮时将触发此功能。但是我必须单击两次才能更改状态。`对于糟糕的英语感到抱歉

标签: javascriptreactjs

解决方案


setState 是一个异步函数,它不会以异步方式设置状态,但是稍后,如果您想在设置状态运行后运行代码片段,则可以使用回调函数:

addTOList = () => { this.setState({ movie : stateMovie }, () => { console.log(this.state.movie) }) }


推荐阅读