React中的Redux只适用于功能组件吗



我一直在学习React,并一直在开发项目。我最近刚开始使用Redux,所以我想用它开发我的下一个项目。我把它设置得很好,对于应用程序中的一个组件,我想,为什么我不能在其中有一个类组件呢?我也尝试过,但它出现了很多错误。

所以我想知道,将反应还原只适用于功能组件,而不是类组件。如果是这样的话,如果你能解释一下原因,那就太好了?

例如:我似乎无法在类组件中声明选择器。当我声明一个变量如下:

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

它抛出以下错误:

错误:钩子调用无效。钩子只能称为身体内部功能组件。

您最终在注释中得到了它的要点,但简单地说,您可以将Redux与类或函数组件一起使用,但访问它的方式使用不同的方法。

功能组件:useSelectoruseDispatchhttps://react-redux.js.org/api/hooks

import { useSelector } from "react-redux";
import { myAction } from './myActions';
const MyComponent = (props) => {
// connect to "play" from Redux store
const play = useSelector((state) => state.play);
// do stuff
console.log(play);
}
export default MyComponent;

类组件:connect(mapStateToProps, mapDispatchToProps)https://react-redux.js.org/api/connect

import { connect } from "react-redux";
class MyComponent extends React.Component {
// do stuff
console.log(this.props.play)
}
const mapStateToProps = state => ({
play: state.play
});
export default connect(mapStateToProps)(MyComponent);

最新更新