问题描述
因此,我正在为我和我的朋友开发一个电影应用程序。我以前有一个关于类似问题的帖子,但现在遇到另一个问题,试图用useContext和数组更新movieList的状态
这是我的useContext数组结构:
{
id: 0,name: "Alpha",ranking: "0"
},{
id: 1,name: "Bravo",{
id: 2,name: "Charlie",]);
我已经能够添加具有默认ID和排名值的新电影,但我希望该应用进入“投票”页面,在此我们都提交投票,并使用输入框更新电影排名值。 / p>
我不确定如何更新此状态。我知道我必须使用onChange方法,但是每次我调用movieList时,它都没有定义为数组
解决方法
您可以使用UseReducer挂钩处理这些复杂的状态更改。 https://reactjs.org/docs/hooks-reference.html#usereducer
,要更新使用者的上下文中的值,您必须更新传递给上下文的值。
假设App
组件的主要内容具有状态,并且您将此状态传递给上下文提供者,因此您需要从App(而不是直接从上下文)更新状态。
您可以使用props传递给子组件的回调函数来做到这一点,甚至可以将该回调函数作为上下文中的属性来放置。
const {state,updateState} = myContextConsumer
有一个相关的问题可能也可以帮助您: How to update the Context value in Provider from the Consumer