作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下两个 Redux 操作(thunk)
export const getA = () => async (dispatch, getState) => {
const response = await http.get('/get-a');
return dispatch({ type: 'FETCHED_A', payload: response });
}
export const getB = () => async (dispatch, getState) => {
const response = await http.get('/get-b');
return dispatch({ type: 'FETCHED_B', payload: response });
}
每个都可以单独使用并且效果很好。
export const getAll = () => async (dispatch, getState) => {
await Promise.allSettled([ dispatch(getA()), dispatch(getB()) ])
}
哪个效果很好,但是当我使用它时,组件会渲染两次(Promise 中的每次调度一次),如何更新此代码以删除不必要的渲染?
Aobj.fetch().dispatch();
Bobj.fetch().dispatch();
和异步获取,例如:
Promise.allSettled([Aobj.fetch(), Bobj.fetch()])
.then(response => {
dispatch({ type: 'ALL_FETCHED', payload: response })
})
PS:此代码仅为简化代码示例,以增加我被理解的机会
最佳答案
尝试使用批处理:
import { batch } from 'react-redux';
const test = () => {
batch(() => {
dispatch(getA);
dispatch(getB);
});
};
关于reactjs - 如何在没有不必要渲染的情况下创建可重用的异步 thunk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65011929/
jQuery attributeContainsPrefix [name^="value"] 对比 attributeStartsWith [name|="value"] 实际区别是什么? 最佳答案
在1.1部分在RFC 6749中,有四种角色:资源拥有者、资源服务器、客户端和授权服务器。 如果客户端和资源所有者是同一实体,OAuth 是否变得多余或不必要? 例如,我有一个封闭的 API 和一个面
我有一段代码,其中有一个带有保护子句的 raise 语句: def validate_index index # Change to SizeError raise ArgumentError
我看到了这篇文章( JPA Entity Lifecycle Events vs database trigger ),但它并没有像我在这里那样明确地询问: 当我插入 PK 值为 (null) 的行时
所以,我有一段代码看起来像 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2){ // Do something }
我是一名优秀的程序员,十分优秀!