gpt4 book ai didi

javascript - 我如何在 React 的 recompose 生命周期方法中设置状态?

转载 作者:可可西里 更新时间:2023-11-01 01:41:04 24 4
gpt4 key购买 nike

我在我的 React 项目中使用 recompose https://github.com/acdlite/recompose/

这是一个很棒的图书馆。我使用 compose 实用程序作为容器组件,将状态作为 props 传递给展示组件,如下所示:

const enhance = compose(
lifecycle({
componentDidMount() {
myCall
.getResponse([productId])
.then(products => {
setIsReady(true);
});
},
}),
withState('isAvailable', 'setIsAvailable', false),
withState('isReady', 'setIsReady', false),
mapProps(({
setIsAvailable,
setIsReady,
...state,
}) => ({
onLogoutTouchTap: () => {
...

注意 componentDidMount 中的 setIsReady(true) 调用。这是我想要做的,但是 lifecycle/componentDidMount 无权访问 setIsReady。我怎样才能通过重组实现从 componentDidMount 更新状态的预期结果?

最佳答案

我发现如果你移动了 lifecycle withState 之后的方法方法,您可以通过访问 this.props.setterFunction 来访问 setter .就我而言,这是我一直在寻找的解决方案:

const enhance = compose(
withState('isAvailable', 'setIsAvailable', false),
withState('isReady', 'setIsReady', false),
lifecycle({
componentDidMount() {
myCall
.getResponse([productId])
.then(products => {
this.props.setIsReady(true);
});
},
}),
mapProps(({
setIsAvailable,
setIsReady,
...state,
}) => ({
onLogoutTouchTap: () => {
...

关于javascript - 我如何在 React 的 recompose 生命周期方法中设置状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41651283/

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