【发布时间】:2019-12-31 04:32:05
【问题描述】:
考虑在获取一些数据后我需要更新状态的代码,我只需要更新初始状态的数据部分(clientData):
const [clientData, setClientData] = useState({
data: {},
product: 'profile'
});
useEffect(() => {
getProducts(1).then(res =>
setClientData({ ...clientData, data: res.data })
);
}, []);
我怎样才能以及是否可以只更新初始状态的“数据”部分而不必传播它 (...clientData)
【问题讨论】:
-
我认为这不可能。您要么必须使用 object spread 要么 Object.assign
-
另一种选择是用多个钩子分割你的状态
-
是的,我想到了,使用钩子时它被认为是最佳实践吗?所以你会有
const [data, setData] = useState({data:}) and const [product, setProduct] = useState({product:'profile'})
标签: reactjs react-hooks use-effect