使用 recompose setStatic 并将其连接到 redux (nextjs)

Posted

技术标签:

【中文标题】使用 recompose setStatic 并将其连接到 redux (nextjs)【英文标题】:Use recompose setStatic and connect it to redux (nextjs) 【发布时间】:2019-04-18 09:24:00 【问题描述】:

我正在使用以下组合,并期望 a 作为道具传递。虽然它是未定义的。

请问如何解决?

import  setStatic, compose  from 'recompose'
import  connect  from 'react-redux'

export const getInitialProps = function() 
  console.log(this.props.a);


const mapDispatchToProps = (dispatch) => (
  a: url => dispatch(type: 'a')
)

export default compose(
  connect(null, mapDispatchToProps),
  setStatic('getInitialProps', getInitialProps),
)

【问题讨论】:

this 未定义或a 是? 很好的问题。这似乎已定义。道具不是。 我认为你在构造函数中缺少这个绑定,或者你需要在 getintialprops 中传递这个 也许将 getInitialProps 更改为箭头函数并尝试。我认为您在 getInitialProps 中丢失了这个上下文,因为它是正常功能 箭头函数即使this消失了 【参考方案1】:

以下是调查结果: getInitialProps 在服务器端被调用,这意味着它是在挂载到 redux 之前的方式。我尝试注入的道具在 componentDidMount 生命周期中可供我使用

【讨论】:

以上是关于使用 recompose setStatic 并将其连接到 redux (nextjs)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 reactjs 中使用 recompose 清理表单?

[Recompose] Lock Props using Recompose -- withProps

你如何从 recompose 中读取这个 curry'd 函数……我的脑痛

[Recompose] Transform Props using Recompose --mapProps

[Recompose] Add Lifecycle Hooks to a Functional Stateless Component using Recompose

19.2 Compose Recomposer启动流程分析