gpt4 book ai didi

reactjs - React-Redux - Hooks API

转载 作者:行者123 更新时间:2023-12-03 13:21:57 24 4
gpt4 key购买 nike

我正在尝试配置我的新react-redux应用程序以使用React-Redux的新功能。 official documentation

React Redux now offers a set of hook APIs as an alternative to the existing connect() Higher Order Component.

我一直在尝试找到一些与 Hooks API 相关的帮助文章和一些真实的例子,但所有的react-redux应用程序都使用连接功能。官方文档还展示了非常基本的示例。

我想使用 useSelector(由 Hooks API 提供)更改应用程序中的连接功能。

这是我的应用程序中的示例代码片段。

//MessagesListContainer
export default connect(
// mapStateToProps
(state:State) => ({
activeUser: getActiveUser(state),
messages: getMessagesList(state),
})
)(MessagesList)

//Selectors
export const getActiveUser = (state: State) => state.activeUser;
export const getMessagesList = (state : State) => (
Object.keys(state.messages).map((key : any)=> state.messages[key])
)

export interface IMessagesListProps {
activeUser?: User;
messages?: Message[];
}
/**
* Messages List
*/
export default class MessagesList extends PureComponent<IMessagesListProps> {
.
.
.
}

最佳答案

钩子(Hook)与类组件不兼容。要使用 Hook,请将类组件转换为函数组件。例如,您的代码可以重构为

/**
* Messages List
*/

const getActiveUser = (state: State) => state.activeUser;
const getMessagesList = (state : State) => (Object.keys(state.messages).map((key : any)=> state.messages[key]));

const MessagesList: React.FC = () => {
const activeUser = useSelector(getActiveUser);
const messagesList = useSelector(getMessagesList);

....
}

export default MessagesList;

关于reactjs - React-Redux - Hooks API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60949066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com