javascript - 状态改变时不调用函数
问题描述
我有一个反应 showPeople 的功能。这是代码:
const showPeople = () => {
const people = workers.map((worker, i) => {
return (
<div>
<Worker
id={worker.id}
index={i}
role={worker.role}
/>
</div>
)
})
return people;
}
稍后在组件中我想调用这个函数,以便向我显示一些工人的信息。我这样称呼它:
<div>
{showPeople()}
</div>
这没关系,但它只被调用一次。当我改变状态时,它不会被调用。所以我只有在刷新页面后才有更新。如果我删除通话中的括号,我的屏幕上什么也没有。有谁知道是什么问题?抱歉,如果这个问题是重复的,我不确定我是否理解与他的主题相关的任何先前的答案。谢谢
解决方案
正如本文所写,它应该在状态更新时更新(参见此处的示例)。除非您保存了数组workers
,例如,const {workers} = this.state
否则const [workers, setWorkers] = useState([{'id': '1', role: 'thisRoleNAme'}])
您可能实际上并没有访问一个状态。
推荐阅读
- python - Plotly/Jupyter 中的 LaTeX 无法在 Firefox 上运行
- postgresql - 如果需要,使用 pg_ctl 启动 Postgres DB
- db2 - IBM CDC 表应该已经被刷新。转换服务器将终止
- css - 使用 React 自定义元素时不应用 styled-components 样式
- javascript - 如何在jsPsych的canvas-slider-response插件中隐藏滑块的拇指直到参与者响应?
- perl - 循环遍历 perl 数组
- sql-server - 从表中获取逗号分隔的一组值,其中另一个表上的另一个参考值出现两次(或更多)
- selenium-webdriver - 谷歌 chrome 驱动程序在使用 java 的 selenium 启动后立即关闭
- jq - 为什么 jq 列表构造函数和对象构造函数对生成器的行为不同?
- r - 在 R 中创建决策树时如何对节点进行编号?