使用 ReactJS 的 useState 钩子设置变量不起作用

鲁道夫·莫里

我试图useState在 API 调用之后设置一个变量,但它不起作用。通过 reactotron 调试,他进行 API 调用,但他没有设置变量。

export default function Forecast({ navigation }) {
  const [cityData, setCityData] = useState([]);
  const idNavigation = navigation.state.params.cityData.woeid;

  async function loadCityData(cityID) {
    const response = await api.get(`${cityID}`);
    setCityData([response]);
    console.tron.log(cityData);
  }

  useEffect(() => {
    if (idNavigation) {
      loadCityData(idNavigation);
    }
    return () => {};
    // eslint-disable-next-line react-hooks/exhaustive-deps
  }, [idNavigation]);

  return <Text>Forecast Weather</Text>;
}

Forecast.propTypes = {
  navigation: PropTypes.shape({
    state: PropTypes.object,
  }).isRequired,
};
明晰

在 React 中设置状态在大多数情况下是异步的,如果您尝试立即使用 console.log 对状态的更改可能不可见。使用钩子执行此操作的推荐方法是检查 中的更新状态useEffect

 async function loadCityData(cityID) {
  const response = await api.get(`${cityID}`);
  setCityData([response]);
}

// Track cityData and log the changes to it
useEffect(() => {
  console.log(cityData);
}, [cityData]);

// Rest of the code
// ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用useState钩子未设置状态 ReactJS

ReactJS - 使用 useState 钩子维护数值

在 Reactjs 中使用 UseState

使用 useState 钩子单击按钮不会更新 reactjs 状态

ReactJS:如何从 useState 钩子导出变量?

Reactjs 钩子 useState 奇怪的行为

无法在 reactjs 中使用 useState 设置状态数据

ReactJS - 从 2 个单独的 useState 设置变量

使用钩子 useState() 的问题

ReactJs useState钩子进入无限循环

Reactjs 使用 useState 导致 axios 请求循环

使用 reactjs useState 时出现错误

ReactJS - 使用 useState 数组推送方法

使用 useState reactjs 更改日期

我们可以在reactjs钩子中为useState()使用对象分解吗?

尝试使用 useSelector 设置 useState 的默认值,但它不起作用

在 setInterval 中使用带有 if 条件的 useState 不起作用

使用 react useState 移动列表元素不起作用

在 TypeScript 中使用 useState 钩子

在console.log之后reactjs设置钩子方法不起作用

ReactJS-新的useState React钩子中的prevState吗?

使用 ReactJS Hooks 通过 useState 增加价值

使用useState時ReactJS無限請求循環

Reactjs 如何使用 useEffect 来处理 useState 的许多变化

如何在reactjs中将usestate与对象一起使用?

在 usestate hook 的帮助下使用 reactjs 获取 textarea 字符数

ReactJS:使用useState管理多个复选框输入

(Reactjs) 使用 useEffect 和 useState 获取数据时的“延迟”

ScrollToBottom函数在React钩子reactjs中不起作用