我需要将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的第一个参数。
答案 0 :(得分:0)
我相信问题是因为您要将对象作为参数传递给函数。如果您的参数要接受多个参数,则应该可以:
loginSms: apiCall((phoneNumber, code) => ({
method: 'POST',
url: '/login',
data: {
loginAuthenticationToken: {
'@type': 'sms',
phoneNumber,
code
}
}
})),
答案 1 :(得分:0)
如果您阅读Redux Saga文档,则可以看到call具有一个函数和一个参数数组:
call(fn,... args)
您需要在数组中传递多个参数。