【发布时间】:2021-08-20 10:28:37
【问题描述】:
使用上下文存储一个数组并尝试通过array.map生成一个组件列表,但是UI没有重新渲染来显示所有组件。
节目背景:
我有一个包含数组的上下文,并且 UI 将有一个“添加”按钮。
我的目标:
- 当用户按下“添加”时
- 上下文中的数组将被推送一个新值
- UI 将被重新渲染并生成一个新组件
我的问题:
我尝试使用 useState 来存储数组,这完全没问题,因为一旦我使用 setArray 更新列表,就会触发重新渲染并显示一个新组件。
但是,当我尝试使用 useContext 时,页面不会被重新渲染。
- 我还应该使用 useState 来执行我的目标吗? (然后我必须管理 2 个变量,即上下文和状态,我认为这是处理它的一种虚拟方式。)
- 还有其他方法可以实现我的目标吗?
这是沙盒演示: https://codesandbox.io/s/falling-field-ur748?file=/src/App2.js
【问题讨论】:
标签: reactjs react-hooks react-context