如何在基于类的组件中使用`useSelector`?反应,Redux

3 javascript reactjs redux

我想从我的 Redux 存储中获取数据,而不是错误:)

在基于函数的组件中,我总是这样做

...

import { useSelector } from 'react-redux';

export deafult function App(...){
  ...

  const someData = useSelector(state => state.someData);

  ...
  return (...)
}
...
Run Code Online (Sandbox Code Playgroud)

但是当涉及到基于类的组件时,我想要这样,但是我收到一个错误:(

...
import { useSelector } from 'react-redux';

export default class App  extends Component {
  constructor(...){
    ...
    
    const someData = useSelector(state => state.someData);

    ...
  }

  render(...)
}
...

Run Code Online (Sandbox Code Playgroud)

小智 5

Hooks 仅适用于功能组件

您可以像这样从 react-redux 传递道具而不是 useSelector

import React from 'react'
import {connect} from 'react-redux'

class App extends React.Component{
...

//Your data from react-redux can be called like this.props.someData
const someData = this.props.someData;

...
}

const mapStateToProps = state => {
     return {
         someData: state.someData
     }
}

export default connect(mapStateToProps)(App)
Run Code Online (Sandbox Code Playgroud)