1
    使用效果(()=>{
        获取(`${BASE_URL}/requested_url`)
          .then(响应 => response.json())
          .then(json => setData(json))
      }, []);

当我使用基于类的组件时,我必须使用状态布尔值来指定何时开始获取和停止......我试图完成工作的事情很奇怪,但我仍然很想知道我们是否可以停止在 componentDidUpdate() 生命周期方法中也重复调用请求。

    组件DidUpdate() {
        如果(this.state.show2){
          返回获取(`${BASE_URL}/requested_url`)
            .then(响应 => response.json())
            .then(json => setState({
              数据:json,
              显示2:假
            }))
        }
        返回;
      }

我知道这不是从生命周期进行请求调用的正确方法。也不要因此评判我......所以,请告诉我是否有人可以帮助我正确地做到这一点,或者这样做是否合法......

4

1 回答 1

0

第二个属性useEffect是一个依赖数组。基本上,效果中使用的任何外部变量都需要放在那里,因为函数只会在它们改变值时运行。

  useEffect(()=>{
    if (show2)
      fetch(`${BASE_URL}/requested_url`)
        .then(response => response.json())
        .then(json => setData(json))
  }, [show2]);
于 2020-05-10T19:39:26.923 回答