【问题标题】:attach a loading component on submit using react使用反应在提交时附加加载组件
【发布时间】:2020-08-16 21:09:57
【问题描述】:

我有一个解决方法,我一直在尝试在单击提交表单后附加加载器或进度条组件。我在 redux 初始状态下声明了加载,但不知道如何从这里开始。

是的,我知道如何在使用 GET 请求从 API 获取数据时附加加载组件,但不知道如何使用 POST 请求。所以,表单应该加载一个点击提交的组件,然后它将数据发送到商店。

以下是沙盒链接: https://codesandbox.io/s/brave-lewin-bp3w6?file=/src/Form.jsx

任何帮助将不胜感激。

【问题讨论】:

    标签: reactjs redux react-redux formik


    【解决方案1】:

    创建一个额外的操作startLoading,您可以在 API 调用之前调度它:

    export const START_LOADING = "START_LOADING";
    
    export const startLoading = () => {
      return {
        type: START_LOADING
      };
    };
    
    export default function(state = initialState, action) {
      switch (action.type) {
        case START_LOADING:
          return {
            ...state,
            loading: true
          };
        case ADD_USERS:
          return {
            ...state,
            users: [...state.users, action.payload],
            loading: false
          };
        default:
          return state;
      }
    }
    

    然后在你的onSubmit 你可以这样做:

    props.startLoading();
    props.addUsers(values);
    

    【讨论】:

    • 非常感谢您的提示,我会试一试的。加载程序似乎总是在提交时加载,如果加载时间超过 10 秒或其他什么,是否可以附加加载程序。也许我们应该使用一些条件渲染 props.startLoading()...
    • 另外,如何在表单组件中渲染实际的加载组件?
    • 要有条件地渲染实际组件,请执行{loading && (<LoadingComponent />)}之类的操作
    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 2019-10-10
    相关资源
    最近更新 更多