has*_*aji 3 javascript reactjs react-hooks
我有两个钩子。一个叫useLocalStorage,另一个叫useQuery。基于输入道具,我想有条件地使用其中之一。
我简单写一下可以吗const [value, setValue] = localStorage ? useLocalStorage() : useQuery()?
你永远不应该有条件地调用钩子。这是因为每次渲染组件时都需要以相同的顺序调用相同的钩子。请参阅Hook 规则。
根据您的用例,您可以考虑每次渲染挂钩,但在其输出中添加一个条件。
const localStorageOutput = useLocalStorage();
const queryOutput = useQuery();
const [value, setValue] = localStorage ? localStorageOutput : queryOutput;
Run Code Online (Sandbox Code Playgroud)
这可能会产生意想不到的副作用,特别是当你的 prop 值发生localStorage变化时。
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |