javascript - 使用 useEffect 填充多个下拉数据

标签 javascript reactjs axios react-hooks

这就是我尝试使用 useEffects 在我的组件中填充两个下拉菜单的方式。

function populate_dropdown_one_data() {
    return axios.get("http://127.0.0.1:5001/dropdownonedata");
}

function populate_dropdown_two_data() {
    return axios.get("http://127.0.0.1:5000/dropdowntwodata");
}

React.useEffect(() => {
    populate_dropdown_one_data()
      .then(result => {
        setDropDownOneData(result.data.data);
      });
  }, []);

React.useEffect(() => {
    populate_dropdown_two_data()
      .then(result => {
        setDropDownTwoData(result.data.data);
      });
  }, []);

这只会在页面加载时调用 populate_dropdown_one_data

如果我将 populate_dropdown_one_datapopulate_dropdown_two_data 组合在一个 useEffect 中,它只会调用 populate_dropdown_two_data

如何在页面加载时为两个下拉菜单填充数据?

最佳答案

State update is not batched for asynchronous operations .

您可以await 一个effect 中的两个操作。

React.useEffect(
  () => {
    const fetchData = async () => {
      const one = await populate_dropdown_one_data();
      const two = await populate_dropdown_two_data();

      setDropDownOneData(one.data.data);
      setDropDownTwoData(two.data.data);
    };

    fetchData();
  },
  []
);

关于javascript - 使用 useEffect 填充多个下拉数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58479281/

相关文章:

javascript - 如何使用反引号在 node.js 中编写多行 MySQL 查询?

javascript - 为什么该方程式的最大误差为4096 * Number.EPSILON?

javascript - 如何使用 Papa Parse 从 CSV 文件中将数据提取到 React 状态?

javascript - localstorage.getitem ('key' ) 有时返回 null - 在 react 应用程序中

reactjs - 如何在 React 中对输入进行 Base64 编码?

vue.js - import axios 导致 vue v3 和 vite 出现问题

javascript - Javascript 中的环境变量 (Gulp)

javascript - 将内容发送到 WordPress 的纯文本编辑器

javascript - 在 React.cloneElement() 中设置 aria-label/aria-labelledby?

javascript - html/JS 中其他输入的只读等价物