【问题标题】:pass multiple values to redux saga call将多个值传递给 redux saga 调用
【发布时间】:2019-02-08 18:03:27
【问题描述】:

我需要将 2 个值传递给发布请求。 我已经这样写了电话

       const { phoneNumber, code } = params;

        yield call(
          apiCall,
          Generic.loginSms,
          actions.loginSmsLink(phoneNumber, code)
        );

动作就是这样。

        export const loginSmsLink = createAction(
          ActionTypes.SMS_CODE_LOGIN,
          phoneNumber => ({ phoneNumber }),
          code => ({ code })
        );

请求:

       loginSms: apiCall(({phoneNumber, code}) => ({
         method: 'POST',
         url: '/login',
         data: {
           loginAuthenticationToken: {
            '@type': 'sms',
            phoneNumber,
            code
           }
          }
        })),

请求只接受 phoneNumber 的第一个参数。

【问题讨论】:

    标签: redux redux-saga


    【解决方案1】:

    我认为问题在于您将对象作为参数传递给您的函数。如果您的参数要接受多个参数,则应该可以:

    loginSms: apiCall((phoneNumber, code) => ({
      method: 'POST',
      url: '/login',
      data: {
        loginAuthenticationToken: {
          '@type': 'sms',
          phoneNumber,
          code
        }
      }
    })),
    

    【讨论】:

      【解决方案2】:

      如果您阅读 Redux Saga documentation,您会看到 call 接受一个函数和一个参数数组:

      调用(fn, ...args)

      你需要在一个数组中传递多个参数。

      【讨论】:

        猜你喜欢
        • 2019-04-13
        • 1970-01-01
        • 2022-01-13
        • 1970-01-01
        • 2019-09-14
        • 2020-10-29
        • 1970-01-01
        • 1970-01-01
        • 2018-08-04
        相关资源
        最近更新 更多