使用useEffect和dept []意味着它只需要setState一次,对吗?属性似乎到达得太晚了,因此我的单选按钮初始值没有突出显示
const [isOnlineSystem, setFutureOnlineSystem] = useState(null);
const [reasonType, setReasonType] = useState('');
const [customReason, setCustomReason] = useState('');
useEffect(() => {
setFutureOnlineSystem(props.isFutureOnlineSystem)
}, []);如果我使用下面的代码,它将设法赋值,当我打开我的模式表单时,单选按钮将突出显示,但我不希望它在每次组件更新时都设置值,因为该属性只到达一次
useEffect(() => {
setFutureOnlineSystem(props.isFutureOnlineSystem)
}, [props.isFutureOnlineSystem]);
<Radio.Group value={isOnlineSystem}发布于 2020-07-21 05:28:28
const [isOnlineSystem, setFutureOnlineSystem] = useState(null);不能将单选按钮值设置为空。它应该是
const [isOnlineSystem, setFutureOnlineSystem] = useState('');使用useEffect和dept []意味着它只需要setState一次,对吗?
不是的。依赖关系意味着对于特定的deps,它将触发useEffect。
如果你把它留空了。这意味着它将在每次状态更改时触发,这是一种糟糕的做法。
更新:
const isInitial = useRef(true);
useEffect(() => {
if(isInitial) {
setFutureOnlineSystem(props.isFutureOnlineSystem);
isInitial.current = false;
}
}, [props.isFutureOnlineSystem, isInitial]);这将只setState一次。
https://stackoverflow.com/questions/63003999
复制相似问题