【发布时间】:2022-01-10 09:14:58
【问题描述】:
我有这个 React 选择下拉菜单:
const handleSyncList = () => {
......
};
const [exchangeId, setExchangeId] = useState('');
<select onSelect={e => setExchangeId(e.target.value)} onChange={handleSyncList}>
<option value="">All Exchanges</option>
{exchangesList.map(otherEntity => (
<option value={otherEntity.exchangeId}>
.......
</option>
))
: null}
</select>
我需要将选定的值设置为exchangeId 并调用handleSyncList。
是否可以先设置选项值,然后使用 useEffect 调用handleSyncList,如下所示:
useEffect(callback, [dep])
【问题讨论】:
-
你可以按顺序调用它:
onSelect={e => { setExchangeId(e.target.value); handleSyncList(); } } -
我测试了您的提议,但看起来首先调用了
handleSyncList,然后调用了etExchangeId。结果是下次我更改下拉值时,会显示正确的搜索值。知道如何防止这种情况发生吗?
标签: javascript reactjs typescript