小编Min*_*šis的帖子

PayloadAction 的 Typescript 类型

我正在createSlice这样使用:

import { createSlice, PayloadAction } from '@reduxjs/toolkit';

const initialState = {} as Order;

const order = createSlice({
  name: 'order',
  initialState,
  reducers: {
    setOrder: (_state, { payload }: PayloadAction<Order | null>) => payload,
  },
});
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Type 'SalesOrder | null' is not assignable to type 'void | SalesOrder | WritableDraft<SalesOrder>'.
  Type 'null' is not assignable to type 'void | SalesOrder | WritableDraft<SalesOrder>'.ts(2322)
Run Code Online (Sandbox Code Playgroud)

当我将鼠标悬停在该函数上时,我得到以下类型:

function(_state: WritableDraft<SalesOrder>, { payload }: PayloadAction<SalesOrder | null>): SalesOrder | null
Run Code Online (Sandbox Code Playgroud)

我该如何解决?我希望该值为Ordernull …

typescript reactjs redux redux-toolkit

6
推荐指数
1
解决办法
2773
查看次数

Cypress 拦截不匹配的 url

我正在通过网络调用获取数据:

https://mydomain.xxx/third-party-service/pragma?perPage=15&page=1
Request Method: GET
Run Code Online (Sandbox Code Playgroud)

尝试用代码拦截它:

// Overriden not to clear localStorage authentication tokens
const clear = Cypress.LocalStorage.clear;
Cypress.LocalStorage.clear = function(keys) {
  if (keys) {
    return;
  }
};

context('Navigation', () => {
  before(() => {
    cy.login();
    cy.visit('/');
  });
  beforeEach(() => {
    cy.get('[data-test=test-burger]').click();
  });

  it('Tests table', () => {
    cy.get('[data-test=invoices]').click();
    cy.intercept('**/pragma**').as('getPragmaDocuments');
    cy.wait('@getPragmaDocuments');
    //....assertions here after API call is waited
  });
});
Run Code Online (Sandbox Code Playgroud)

但是,它不会拦截网络请求。

我得到的错误:

5000 毫秒后重试超时:cy.wait() 等待第一个路由请求 getPragmaDocuments 超时 5000 毫秒。从未发生过任何请求。了解更多

javascript testing cypress

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