使用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}
答案 0 :(得分:0)
const [isOnlineSystem, setFutureOnlineSystem] = useState(null);
单选按钮值不能设置为null。应该是
const [isOnlineSystem, setFutureOnlineSystem] = useState('');
使用useEffect和dept []意味着它将一次设置setState吗?
不。依赖关系意味着对于特定的dep,它将触发useEffect。
如果您将其保留为空。这意味着它会在每次状态更改时触发,这是一种不好的做法。
更新:
const isInitial = useRef(true);
useEffect(() => {
if(isInitial) {
setFutureOnlineSystem(props.isFutureOnlineSystem);
isInitial.current = false;
}
}, [props.isFutureOnlineSystem, isInitial]);
这只会设置一次状态。