带条件语句的Redux useSelector

带条件语句的Redux useSelector,redux,local-storage,react-hooks,redux-persist,Redux,Local Storage,React Hooks,Redux Persist,我需要获取Redux存储数据,但不总是为每个组件实例化获取不同的数据。 如何将useSelector与条件语句一起使用 仅当呈现某些子组件时,组件才应从存储中获取数据,并且每次根据子组件获取不同的数据。useSelector将访问redux状态的回调作为参数 因此,假设您控制子组件是否在称为IsComponentTrendered的布尔标志中呈现,并且希望在其为真时选择数据,否则,您可以尝试以下操作: const data = useSelector(state => { if(st

我需要获取Redux存储数据,但不总是为每个组件实例化获取不同的数据。 如何将useSelector与条件语句一起使用


仅当呈现某些子组件时,组件才应从存储中获取数据,并且每次根据子组件获取不同的数据。

useSelector将访问redux状态的回调作为参数

因此,假设您控制子组件是否在称为IsComponentTrendered的布尔标志中呈现,并且希望在其为真时选择数据,否则,您可以尝试以下操作:

const data = useSelector(state => {
   if(state.isComponentRendered) {
       return state.data
   }
   return null;
})

我认为这是一个解决办法。将if放在useSelector中是一种好的做法吗?useSelector是一个钩子,因此在if语句中调用它将违反react-hooks规则。有关更多信息,请参阅。这使您可以将上述代码作为组件中应用条件逻辑的唯一位置。