Yan*_*ick 8 reactjs create-react-app react-hooks
页面显示对象列表。[{name:, age:}, ...]
第二页允许更新特定对象的名称。然后使用挂钩,如何实现,useEffect()以便仅在检测到名称更改时才更新首页上的列表?
const [objects, setObjects] = useState([]);
useEffect(()=> {
getAllObjects()
},[getAllObjects, objects]);
Run Code Online (Sandbox Code Playgroud)
人们可以这样做:
useEffect(()=> {
// do something
}, [values.name])
Run Code Online (Sandbox Code Playgroud)
如果对象属性始终存在,那么这是一个很好的解决方案,但是如果该属性在某些时候不存在,则会出现引用错误。这种情况下的解决方法是检查 hook 内是否存在 prop
useEffect(()=> {
if (values?.name) {
// do something
}
}, [values])
Run Code Online (Sandbox Code Playgroud)
不要将整个对象传递给依赖项数组,而是确保仅传递名称。您可以通过返回名称来完成
const [objects, setObjects] = useState([])
useEffect(()=> {
getAllObjects()
}, [getAllObjects, ...objects.map(item => item.name)])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1695 次 |
| 最近记录: |