首页 > 解决方案 > 状态改变时不调用函数

问题描述

我有一个反应 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> 

这没关系,但它只被调用一次。当我改变状态时,它不会被调用。所以我只有在刷新页面后才有更新。如果我删除通话中的括号,我的屏幕上什么也没有。有谁知道是什么问题?抱歉,如果这个问题是重复的,我不确定我是否理解与他的主题相关的任何先前的答案。谢谢

标签: javascriptreactjsredux

解决方案


正如本文所写,它应该在状态更新时更新(参见此处的示例)。除非您保存了数组workers,例如,const {workers} = this.state否则const [workers, setWorkers] = useState([{'id': '1', role: 'thisRoleNAme'}])您可能实际上并没有访问一个状态。


推荐阅读