gpt4 book ai didi

javascript - 将 dom 操作放在 redux reducer 中是个坏主意?

转载 作者:行者123 更新时间:2023-12-01 15:33:45 25 4
gpt4 key购买 nike

我有几个使用相同 reducer 的 Action ,而不是在每个 Action 中都有一个 dom 操作,我只想在我的共享 reducer 中添加一次。我知道 reducer 是纯粹的(返回的数据仍然是),但这是某种反模式还是可接受的策略?

 case APPEND_POSTS:
!payload.length &&
document.getElementById('posts-cont').classList.add('no-more-posts'); // this
const total = state.posts.length + payload.length;
const limit = total > posts_to_keep_limit ? 50 : 0;
return {
...state,
posts: [...state.posts.slice(limit), ...payload],
loading: false,
};
```

最佳答案

还原 Action

 case APPEND_POSTS:
// you don't need to use below code.
// !payload.length && document.getElementById('posts-cont').classList.add('no-more-posts'); // this
const total = state.posts.length + payload.length;
const limit = total > posts_to_keep_limit ? 50 : 0;
return {
...state,
posts: [...state.posts.slice(limit), ...payload],
nomore: true,
loading: false,
};
你的组件。
function YourComp(props){
const state = useSelector(...);

return ( <div id="posts-cont" className={state.nomore ? 'no-more-posts' : ''} > {...}</div>


}

关于javascript - 将 dom 操作放在 redux reducer 中是个坏主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63480357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com