【发布时间】:2020-09-24 14:51:42
【问题描述】:
我正在使用 redux 和 redux thunk 的反应。 我有一个动作,我正在发出网络请求。 使用 useSelector 我从 redux 商店获取数据。 我有一个问题,每次我调度操作时组件都会重新呈现。 我希望组件仅在数据更改时重新呈现。 我已经尝试使用 shallowEqual 作为 useSelector 的第二个参数。但它不起作用。 我已将其压缩为此沙箱中的最小示例。在控制台中,您可以看到组件随每个网络请求重新呈现。 这是代码框: https://codesandbox.io/s/useselector-js6j0?file=/src/App.js:885-1294
代码如下:
function LevelThree() {
console.log(`Level three calls: ${++levelThreeCalls}`);
const contextData = useSelector(state => state.data);
console.log(contextData);
const dispatch = useDispatch();
useInterval(() => {
dispatch(updateData());
}, 1000);
return (
<div>
<button onClick={() => dispatch(updateData())}>Change context</button>
{contextData[0].userId}
</div>
);
}
【问题讨论】:
标签: javascript reactjs redux react-hooks redux-thunk