Reactjs 创建新对象时使用React上下文API更新组件
我是React新手,我正在尝试在下面的教程中使用React上下文API来更新组件。最初,我使用json对象加载推文。在TweetForm组件中,在提交表单时,我通过使用setTweets函数预先添加一个新对象来更新这个tweets数组。当我控制台记录tweets数组时,它向我显示我的新tweet正在添加到数组中,但我的tweets没有更新 有人能帮忙吗?下面是我在sandbox上的代码链接Reactjs 创建新对象时使用React上下文API更新组件,reactjs,react-hooks,react-context,Reactjs,React Hooks,React Context,我是React新手,我正在尝试在下面的教程中使用React上下文API来更新组件。最初,我使用json对象加载推文。在TweetForm组件中,在提交表单时,我通过使用setTweets函数预先添加一个新对象来更新这个tweets数组。当我控制台记录tweets数组时,它向我显示我的新tweet正在添加到数组中,但我的tweets没有更新 有人能帮忙吗?下面是我在sandbox上的代码链接 在TweetForm.js中,在handleSubmit函数中,您必须使用spread操作符设置新的twe
在
TweetForm.js
中,在handleSubmit
函数中,您必须使用spread操作符设置新的tweet,如下所示:
setTweets([...newTweets]);
工作示例:在
TweetForm.js
中,在handleSubmit
函数中,您必须使用spread操作符设置新的tweet,如下所示:
setTweets([...newTweets]);
工作示例:Hi Harish,这似乎在您的演示链接中起作用。你能简单地解释一下为什么我的解决方案不起作用,而你的解决方案起作用吗?提前谢谢!如果数据未嵌套,则spread操作符会生成数据的深度副本。当您在数组或对象中有嵌套数据时,spread操作符将创建最顶层数据的深度副本和嵌套数据的浅层副本。在
React
和Redux
中,仅当通过.setState()
或reducer
检测到状态变化时,您的应用程序才会更新。浅层副本可能会在调用其中任何一个之前更改状态,因此在调用它们时,旧状态将显示为与新状态相同,并且您的元素不会更新。在工作示例中,我们使用spread
运算符,因此根据上述语句,React`知道状态已更改
,并再次调用render()
方法。由于您是React新手,请先尝试了解React生命周期。。希望它能解决您的疑问,如果是的话,您可以接受答案。嗨,哈里什,这似乎是在您的演示链接工作。你能简单地解释一下为什么我的解决方案不起作用,而你的解决方案起作用吗?提前谢谢!如果数据未嵌套,则spread操作符会生成数据的深度副本。当您在数组或对象中有嵌套数据时,spread操作符将创建最顶层数据的深度副本和嵌套数据的浅层副本。在React
和Redux
中,仅当通过.setState()
或reducer
检测到状态变化时,您的应用程序才会更新。浅层副本可能会在调用其中任何一个之前更改状态,因此在调用它们时,旧状态将显示为与新状态相同,并且您的元素不会更新。在工作示例中,我们使用spread
运算符,因此根据上述语句,React`知道状态已更改
,并再次调用render()
方法。由于您是React新手,请先尝试了解React生命周期。。希望它能解决您的疑问,如果是,您可以接受答案。