Reactjs ReduxToolkit:如何将存储更改同步到本地状态?

Reactjs ReduxToolkit:如何将存储更改同步到本地状态?,reactjs,redux,redux-toolkit,Reactjs,Redux,Redux Toolkit,在我的组件中,我从API加载初始数据,如下所示: const dispatch = useDispatch(); const groups = useSelector(selectGroups); const [localGroupState, setLocalGroupsState] = useState(groups); useEffect(() => { dispatch(loadAsync()); }, []); expo

在我的组件中,我从API加载初始数据,如下所示:

    const dispatch = useDispatch();
    const groups = useSelector(selectGroups);
    const [localGroupState, setLocalGroupsState] = useState(groups);

    useEffect(() => {
        dispatch(loadAsync());
    }, []);
export const loadAsync=():AppThunk=>dispatch=>{
调度(加载());
get('/data',{headers:{'Authorization':`Bearer${getToken()}`})
.然后((axiosResponse:axiosResponse)=>{
调度(已加载(axiosResponse.data));
console.log(“一切正常”)
})
.catch(()=>{
console.error(“不好”)
});    
};
但是
localGroupState
为空,而
groups
为空。 我觉得我错过了一个简单的技巧。
非常感谢您的帮助。

如果您想对组进行排序和筛选,那么您的本地状态应该是那些排序和筛选条件。已排序和筛选的组应为计算值,而不是状态

const dispatch = useDispatch();
const groups = useSelector(selectGroups);
const [sort, setSort] = useState('ascending');
const [filter, setFilter] = useState('something');

const sortedGroups = [...groups].sort(
  // replace this with whatever your sorting logic is
  sort === 'ascending' ? (a, b) => a - b : (a, b) => b - a
).filter(() => /* some filtering code */);

useEffect(() => {
    dispatch(loadAsync());
}, []);
出于性能原因,您可能希望记忆排序和筛选,以便仅当
排序
、或
过滤器
更改时,才会重新运行排序和筛选:

const sortedGroups = useMemo(() => {
  return [...groups].sort(
    // replace this with whatever your sorting logic is
    sort === 'ascending' ? (a, b) => a - b : (a, b) => b - a
  ).filter(() => /* some filtering code */);
}, [groups, sort, filter]);

若要对组进行排序和筛选,则本地状态应为这些排序和筛选条件。已排序和筛选的组应为计算值,而不是状态

const dispatch = useDispatch();
const groups = useSelector(selectGroups);
const [sort, setSort] = useState('ascending');
const [filter, setFilter] = useState('something');

const sortedGroups = [...groups].sort(
  // replace this with whatever your sorting logic is
  sort === 'ascending' ? (a, b) => a - b : (a, b) => b - a
).filter(() => /* some filtering code */);

useEffect(() => {
    dispatch(loadAsync());
}, []);
出于性能原因,您可能希望记忆排序和筛选,以便仅当
排序
、或
过滤器
更改时,才会重新运行排序和筛选:

const sortedGroups = useMemo(() => {
  return [...groups].sort(
    // replace this with whatever your sorting logic is
    sort === 'ascending' ? (a, b) => a - b : (a, b) => b - a
  ).filter(() => /* some filtering code */);
}, [groups, sort, filter]);

您拥有
localGroupState
的原因是什么?你能不能在你的组件中使用
groups
?@NicholasTower我希望存储反映所有数据,但我希望
localGroupState
只能在组件中进行筛选和搜索。请显示生成最小示例所需的所有信息,如显示
selectGroups
selector,你的初始状态等等on@DennisVash更新您拥有
localGroupState
的原因是什么?你能不能在你的组件中使用
groups
?@NicholasTower我希望存储反映所有数据,但我希望
localGroupState
只能在组件中进行筛选和搜索。请显示生成最小示例所需的所有信息,如显示
selectGroups
selector,你的初始状态等等on@DennisVash更新