小编Рич*_*ман的帖子

使用 redux-toolkit 处理错误

我的案例中有关错误的信息深深地存在于响应中,我正试图将我的项目移至redux-toolkit. 这是以前的样子:

catch(e) {
  let warning
  switch (e.response.data.error.message) { 
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是redux-toolkit没有将这些数据放在rejected动作创建者中,而且我无法访问错误消息,它将他的消息而不是最初的消息:

在此处输入图片说明

虽然原始响应如下所示:

在此处输入图片说明

那么我怎样才能检索到这些数据呢?

redux react-redux redux-toolkit

8
推荐指数
2
解决办法
6386
查看次数

如何根据对象中的值限制对象类型?

现在我使用这个类型别名:

export type Country = {
  name: 'USA' | 'Russia' | 'Bulgaria' | 'Romania' | 'Austria' | 'Great Britain' | 'Italy',
  code: 'us' | 'ru' | 'bg' | 'ro' | 'au' | 'gb' | 'it'
};
Run Code Online (Sandbox Code Playgroud)

但它允许创建不正确的对象:

{ name: 'USA', code: 'ru'}
Run Code Online (Sandbox Code Playgroud)

为此目的制作类型的最佳方法是什么?

javascript typescript

3
推荐指数
1
解决办法
54
查看次数

如何使用 jest.fn() 模拟调度

例如,我想知道已经调度了什么以及参数。动作创建者是异步的,但我不关心它的实现,我只想知道组件是否使用正确的参数调度正确的动作创建者。我尝试过这种方法:

store.dispatch = jest.fn()
Run Code Online (Sandbox Code Playgroud)

但我无法获得任何有用的信息:

这是我可以从 store.dispatch.mock 得到的

我尝试通过这种方式解决问题:

expect(store.dispatch.mock.calls[0].toString()).toBe(requestArticles().toString())
Run Code Online (Sandbox Code Playgroud)

但我不知道这个论点,但我确信有更好的方法来做到这一点。另外值得注意的是,我正在使用react-testing-library,所以我不能使用wrapper.instance().propsEnzyme。

javascript reactjs jestjs react-testing-library

2
推荐指数
1
解决办法
4万
查看次数