下面的handleChange函数在3个TextInput上调用,用于实时搜索。当您在输入之一中键入内容时,提取功能将起作用,但状态为空。但是,每下一次更改(无论输入内容和更改数量)都填充该状态。 最后,函数外部的console.log显示useState在第一次更改后确实起作用了! 关于生命周期的事情逃避了我...如果有人有线索...谢谢!
我试图删除if(!e)条件(当您清除输入时可以处理这种情况),问题仍然相同。
const handleChange = async (e, info) => {
if (!e) {
setQueryParam({
name: info === 'name' ? e : queryParam.name,
abv: info === 'abv' ? e : queryParam.abv,
food: info === 'food' ? e : queryParam.food
});
setBeers([]);
} else {
setQueryParam({
name: info === 'name' ? e : queryParam.name,
abv: info === 'abv' ? e : queryParam.abv,
food: info === 'food' ? e : queryParam.food
});
setLoading(true);
setMessage('');
await fetchBeers(1, queryParam);
}
};
console.log('stateOutside', queryParam);