React-Native UseState不会在第一次更改时设置setState,但会在下次更改时设置setState

时间:2019-12-02 10:00:01

标签: react-native state

下面的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);

0 个答案:

没有答案