我如何在史诗中使用“const”? Redux-observable ES6箭头功能

时间:2018-03-08 11:43:12

标签: javascript redux-observable

我是新手做出反应并且可以减少观察力。

我的问题是如何在史诗中定义变量?

我被告知要使用     const {user} = store.getState()。currentUser.user 我试过了,但它没有用。

()=> request()是像fetch一样的API。

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忍者?

2 个答案:

答案 0 :(得分:0)

试试这个:

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(),
);

答案 1 :(得分:0)

删除用户周围的大括号,你可以使用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中没有大括号,您只能编写一个代码语句,它也是默认返回值。如果要编写多个语句,请使用大括号并显式返回值。