如何在 Epic 中使用 "const"? Redux-observable ES6箭头函数
How can I use "const" in epic? Redux-observable ES6 arrow function
我是新手,redux-observable。
我的问题是如何在史诗中定义变量?
有人告诉我使用
const { 用户 } = store.getState().currentUser.user
我试过了,但是没有用。
() => request() API 类似于 fetch。
之前
const updateDeviceTokenEpic = (action$: Observable<Action>, store: any) => action$.pipe(
ofType(actions.UPDATE_DEVICE_TOKEN),
exhaustMap(() => request({
url: `users/${store.getState().currentUser.user.id}`,
method: 'put',
data: {
device_token: `${store.getState().currentUser.user.deviceToken}`,
},
})),
ignoreElements(),
);
之后
const updateDeviceTokenEpic = (action$: Observable<Action>, store: any) =>
action$.pipe(
ofType(actions.UPDATE_DEVICE_TOKEN),
exhaustMap(() => request(
const { user } = store.getState().currentUSer.user;
{
url: user.id,
method: 'put',
data: {
device_token: user.deviceToken,
},
})),
ignoreElements(),
);
怎么了?
有js忍者吗?
试试这个:
const updateDeviceTokenEpic = (action$: Observable<Action>, store: any) =>
const { id } = store.getState().currentUSer.user;
action$.pipe(
ofType(actions.UPDATE_DEVICE_TOKEN),
exhaustMap(() => request(
{
url: `users/${id}`,
method: 'put',
data: {
device_token: user.deviceToken,
},
})),
ignoreElements(),
);
删除用户周围的大括号,它会工作你正在使用 Destructuring assignment 并且不知道它是如何工作的并向函数体添加大括号。
const updateDeviceTokenEpic = (action$: Observable<Action>, store:any) =>
{
const user = store.getState().currentUSer.user;
return action$.pipe(
ofType(actions.UPDATE_DEVICE_TOKEN),
exhaustMap(() => request({
url: `users/${user.id}`,
method: 'put',
data: {
device_token: user.deviceToken,
},
})),
ignoreElements(),
);
}
在 Arrow function 中没有大括号,您只能编写一个代码语句,这也是默认的 return 值。如果要编写多于 1 个语句,请使用大括号和 return 明确的值。
我是新手,redux-observable。
我的问题是如何在史诗中定义变量?
有人告诉我使用 const { 用户 } = store.getState().currentUser.user 我试过了,但是没有用。
() => request() API 类似于 fetch。
之前
const updateDeviceTokenEpic = (action$: Observable<Action>, store: any) => action$.pipe(
ofType(actions.UPDATE_DEVICE_TOKEN),
exhaustMap(() => request({
url: `users/${store.getState().currentUser.user.id}`,
method: 'put',
data: {
device_token: `${store.getState().currentUser.user.deviceToken}`,
},
})),
ignoreElements(),
);
之后
const updateDeviceTokenEpic = (action$: Observable<Action>, store: any) =>
action$.pipe(
ofType(actions.UPDATE_DEVICE_TOKEN),
exhaustMap(() => request(
const { user } = store.getState().currentUSer.user;
{
url: user.id,
method: 'put',
data: {
device_token: user.deviceToken,
},
})),
ignoreElements(),
);
怎么了? 有js忍者吗?
试试这个:
const updateDeviceTokenEpic = (action$: Observable<Action>, store: any) =>
const { id } = store.getState().currentUSer.user;
action$.pipe(
ofType(actions.UPDATE_DEVICE_TOKEN),
exhaustMap(() => request(
{
url: `users/${id}`,
method: 'put',
data: {
device_token: user.deviceToken,
},
})),
ignoreElements(),
);
删除用户周围的大括号,它会工作你正在使用 Destructuring assignment 并且不知道它是如何工作的并向函数体添加大括号。
const updateDeviceTokenEpic = (action$: Observable<Action>, store:any) =>
{
const user = store.getState().currentUSer.user;
return action$.pipe(
ofType(actions.UPDATE_DEVICE_TOKEN),
exhaustMap(() => request({
url: `users/${user.id}`,
method: 'put',
data: {
device_token: user.deviceToken,
},
})),
ignoreElements(),
);
}
在 Arrow function 中没有大括号,您只能编写一个代码语句,这也是默认的 return 值。如果要编写多于 1 个语句,请使用大括号和 return 明确的值。