reactjs - redux 工具包使用 typescript 模拟商店

标签 reactjs typescript redux react-redux redux-toolkit

我从 redux documentation 找到了这段代码

// test-utils.jsx
import React from 'react'
import { render as rtlRender } from '@testing-library/react'
import { configureStore } from '@reduxjs/toolkit'
import { Provider } from 'react-redux'
// Import your own reducer
import userReducer from '../userSlice'

function render(
  ui,
  {
    preloadedState,
    store = configureStore({ reducer: { user: userReducer }, preloadedState }),
    ...renderOptions
  } = {}
) {
  function Wrapper({ children }) {
    return <Provider store={store}>{children}</Provider>
  }
  return rtlRender(ui, { wrapper: Wrapper, ...renderOptions })
}

// re-export everything
export * from '@testing-library/react'
// override render method
export { render }

但是,我正在处理 TypeScript 项目,并且尝试向此代码片段添加类型,但是我找不到要使用的正确类型。我也无法从他们的文档中找到任何内容。

有人试过这个吗?

最佳答案

有一个TypeScript example在 React 测试库的官方网站上。

import React from 'react';
import { render as rtlRender } from '@testing-library/react';
import { configureStore } from '@reduxjs/toolkit';
import { Provider } from 'react-redux';

const userReducer = (state = { name: '' }) => {
  return state;
};

function render(
  ui,
  { preloadedState, store = configureStore({ reducer: { user: userReducer }, preloadedState }), ...renderOptions }
) {
  const Wrapper: React.FC = ({ children }) => {
    return <Provider store={store}>{children}</Provider>;
  };
  return rtlRender(ui, { wrapper: Wrapper, ...renderOptions });
}

关于reactjs - redux 工具包使用 typescript 模拟商店,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72136498/

相关文章:

reactjs - 无法加载 .JPG 格式的图像

javascript - Redux状态: Add or replace

html - 使用 [style.something.px] ="2"以 Angular 定义边框宽度(厚度)

javascript - 如何在 Nextjs 中处理创建/编辑页面,我应该在 ServerSideProps 中还是在组件中获取产品

reactjs - 将状态值从 redux reducer 传递到另一个 reducer

reactjs - 从 redux-saga 调用组合的重新选择选择器

javascript - 为什么在有 componentDidUpdate 时使用 getDerivedStateFromProps?

javascript - 将 react 路由器作为上下文传递

javascript - react 点击计数器 : Updating State of just one element

javascript - typescript promise : 'await' expression is only allowed within an async function