我想从自定义的React Hook( useMyHook )返回一个对象:
const [ obj, setState ] = useState({a: {}, b: false});
...
setState({a:{toy: "Buzz"}, b:true});
return {obj}
在“功能”组件中:
const {a, b} = useMyHook();
useEffect(() => {
...
}, [a.toy])
然后,出现以下错误:
TypeError: Cannot read property 'toy' of undefined
我在做什么错了?
答案 0 :(得分:2)
return {obj}
这使您返回一个看起来像这样的对象:
{
obj: {
a: { toy: "Buzz" },
b: true,
}
}
外部对象没有a
属性,只有obj
属性,因此当您进行const {a, b} = useMyHook();
时,a
和b
是未定义的。
相反,您显然想做return obj;