import React from 'react';
import { Provider } from 'react-redux';
import configureStore from 'redux-mock-store';
import { render, screen, fireEvent } from '@testing-library/react';
import MyApp from './MyApp ';
const initialState = {};
const mockStore = configureStore(initialState);
describe('<MyApp />', () => {
it('click button and shows modal', () => {
render(
<Provider store={mockStore}>
<MyApp />
</Provider>
);
fireEvent.click(screen.getByText('ADD MIOU'));
expect(queryByText('Add MIOU Setting')).toBeInTheDocument();
});
});
Run Code Online (Sandbox Code Playgroud)
我正在使用 jest 和 redux 工具包reactjs
,并尝试模拟商店来编写测试。但出现以下错误
类型错误:store.getState 不是函数
有没有什么办法解决这一问题?我错过了什么吗?
我需要导入一个 npm 包,但当我使用这样的“import”语句时失败
import { cuteLuna } from 'lunacomponent';
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:无法在模块外部使用 import 语句
当我将其更改为动态导入后,它就可以工作了。
const cuteLuna = dynamic(() => import('lunacomponent').then((a) => a.cuteLuna), {ssr: false});
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么我应该使用动态导入而不是通常的导入?
谢谢!!
我有一个组件,我设置了一个计数,并在单击按钮时让状态更新。但是当我检查渲染时间时,每次单击按钮时它都会渲染两次。
https://codesandbox.io/s/brave-forest-yre6y?file=/src/App.js
export default function App() {
const cute = Array(10).fill({});
const [count, setCount] = useState(2);
console.log(count);
return (
<div className="App">
<button
onClick={() => {
if (count < 10) setCount(count + 1);
}}
>
add
</button>
{cute.map((data, index) => {
if (index < count) {
return (
<div>
<p>{index}. Luna is cute</p>
</div>
);
}
})}
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
我想知道:
我正在阅读 React hooks 的示例。我发现他们写
setCount(count + 1)
Run Code Online (Sandbox Code Playgroud)
但我通常这样写
setCount(prev => prev + 1)
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?哪一个更好?