我有一个案例:
test.js
import { today } from "utils/date";
import myFunction from "helpers/myFunction";
it('should work properly', () => {
jest.mock('utils/date', () => ({
...(jest.requireActual('utils/date')),
today: jest.fn(() => '01-01-2020'),
}));
console.log(today()); // still logs current date 14-10-2021, not the mocked date
expect(myFunction()).toEqual(today());
});
Run Code Online (Sandbox Code Playgroud)
myFunction.js
import { today } from "utils/date";
export const myFunction = () => today();
Run Code Online (Sandbox Code Playgroud)
today是一个返回今天日期的函数。但出于测试目的,我需要该函数始终返回相同的日期,例如"01-01-2020"。
谢谢
我主要使用 SWR 来获取数据,但是我遇到了需要更新数据的情况。问题是,我需要一个指示该请求正在进行的指示器,例如isLoading标志。在文档中有一个使用建议
const isLoading = !data && !error;
Run Code Online (Sandbox Code Playgroud)
但当然,当更新(变异)时,data仍然存在,因此该标志始终为false。与标志相同isValidating:
const { isValidating } = useSWR(...);
Run Code Online (Sandbox Code Playgroud)
当突变正在进行时,此标志不会更改,但仅当其完成且GET请求开始时才更改。
有没有办法知道我的是否PUT正在加载?注意:我不想使用状态中的任何字段,因为它不会像 SWR 数据一样被共享。也许我的 SWR 代码有问题?
const fetcher = (url, payload) => axios.post(url, payload).then((res) => res);
// ^^^^^ its POST but it only fetches data
const updater = (url, payload) => axios.put(url, payload).then((res) => res);
// ^^^^^ this one UPDATES the data
const useHook = () => {
const …Run Code Online (Sandbox Code Playgroud) 想象一下情况:
const [value, setValue] = useState(false);
const setSomething = (val) => {
setValue((prev) => {
fn(); dispatch(action); // or any other side effect
return prev + val;
});
};
Run Code Online (Sandbox Code Playgroud)
在回调中调用副作用在编程上是否符合反应原则useState?它会以某种方式影响渲染过程吗?
我在使用时遇到一种情况,apexcharts其中一列非常小。渲染工具提示很困难,因为您必须非常小心地将鼠标悬停在列上。
问题:有没有办法扩大悬停区域,以便更容易悬停列?或者也许有一个选项可以在悬停整个垂直区域(列上方和下方的空间)时呈现工具提示?谢谢你!
有问题的游乐场:https://codesandbox.io/s/react-basic-example-forked-nw3ll ?file=/src/App.js
考虑示例:
const Child = () => {
console.log("I did re-render!");
return null;
};
const App = () => {
const [_, setValue] = useState();
const fn = useCallback(() => {
// do something
}, []);
return (
<div>
<button onClick={() => setValue(Math.random)}>click</button>
<Child fn={fn} />
</div>
);
};
Run Code Online (Sandbox Code Playgroud)
每次状态更改App(单击按钮)时,Child组件都会重新渲染,即使传递的 propfn是用useCallback. 但是,如果我用 换行Child,React.memo它就会开始正常工作 - 当父级重新渲染时它不会重新渲染。
useCallbacks我的问题:不使用有什么意义React.memo?React.memo如果我不希望组件在其父级重新渲染时始终重新渲染,我是否应该始终使用?
应该始终与?useCallbacks一起使用 React.memo因为如果没有的话,它们似乎毫无意义、毫无用处React.memo。
RTK 查询出错:
输入“FetchBaseQueryError | SerializedError' 不可分配给类型'ReactNode'。
const { data, error, isLoading } = useGetDataQuery();
return (
<div>{error}</div>
);
Run Code Online (Sandbox Code Playgroud)
怎么解决呢?我应该显示什么?
javascript ×6
reactjs ×6
react-hooks ×2
apexcharts ×1
charts ×1
css ×1
jestjs ×1
rtk-query ×1
swr ×1
unit-testing ×1