类似于通过扩展
React.Component或创建的Class组件中的setState,
React.PureComponent使用
useState钩子提供的更新程序的状态更新也是异步的,不会立即反映和更新,但会触发重新渲染
setMovies(result);console.log(movies) // movies here will not be updated
如果要对状态更新执行操作,则需要使用useEffect钩子,就像
componentDidUpdate在类组件中使用一样,因为useState返回的setter没有回调模式
useEffect(() => { // action on update of movies}, [movies]);就更新状态的语法而言,
setMovies(result)将状态中的先前
movies值替换为异步请求中可用的值
但是,如果要将响应与先前存在的值合并,则必须使用状态更新的回调语法以及正确使用的扩展语法,例如
setMovies(prevMovies => ([...prevMovies, ...result]));



