如何使用依赖关系触发UseEffect Once?

时间:2020-06-03 17:22:16

标签: javascript reactjs react-hooks

我有一个useEffect()方法,该方法在加载组件时运行一次。

  useEffect(() => {
    (async function fetchData() {
      const results = await stateIsoAPI();
      setStates(results);  // API results to other trigger other Use effect
    })();
  }, []);

但是我仅在用户首次键入信息时才需要。

如果我添加输入值的状态依赖关系,则每次用户键入时都会触发:

  useEffect(() => {
    (async function fetchData() {
      const results = await stateIsoAPI();
      setStates(results);  // API results to other trigger other Use effect
    })();
  }, [<inputValueState>]);

但这不是所需的行为。怎么解决?

1 个答案:

答案 0 :(得分:0)

IIFE之前添加快速退出条件

useEffect(() => {
   if(!isFirstTime(<inputValueState>)) {
      return () => {}
   }

    (async function fetchData() {
      const results = await stateIsoAPI();
      setStates(results);  // API results to other trigger other Use effect
    })();
}, [<inputValueState>]);