我需要使用useContext和map函数更新React中的数组状态

问题描述

因此,我正在为我和我的朋友开发一个电影应用程序。我以前有一个关于类似问题的帖子,但现在遇到另一个问题,试图用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