React Redux-错误:无效的挂钩调用。挂钩只能在功能组件的主体内部调用

时间:2020-07-03 17:25:29

标签: reactjs redux react-redux react-hooks state

我想使用useSelector()钩子,但出现上述错误。我在哪里可以使用此钩子访问我的状态数据?

function RetrieveDataSources() {
  var dataSources = useSelector(state => state.dataSourcesReducer);
  console.log(dataSources);
}

class Data extends Component {
  constructor(props) {
    super(props);
    this.state = {
      errorMessage: false,
      isLoading: true,
      resultData: propsState && propsState.resultData,
    };


    RetrieveDataSources();
  }

 
  render() {
    return( some return code );
         }
}


export default Data;

1 个答案:

答案 0 :(得分:0)

只能在函数组件或自定义挂钩中调用挂钩。 您是从普通函数调用它的,因此会出现错误。

此外,似乎您想从类组件中调用钩子-不幸的是,不直接支持该钩子。如果必须使用类组件,请考虑使用mapStateToProps和connect api来从redux存储中获取它。

如果您仍然喜欢使用类组件中的钩子,则here是使用函数组件和React渲染道具将其与父组件共享的示例。尽管通常无法确定调用方是使用函数组件还是使用类组件,但这通常是由库完成的。