Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React-onComponentDidMount事件与React-redux连接_Reactjs_Redux_React Redux - Fatal编程技术网

Reactjs React-onComponentDidMount事件与React-redux连接

Reactjs React-onComponentDidMount事件与React-redux连接,reactjs,redux,react-redux,Reactjs,Redux,React Redux,在下面的示例中,onComponentDidMount不起作用,因为React中不存在该事件。假设我不想使用React.Component重写Main,我应该使用什么事件,或者有其他方法吗 let Main = ({myEventMethod}) => ( <main onComponentDidMount={myEventMethod}> ... </main> ) const mapDispatchToProps = (disp

在下面的示例中,onComponentDidMount不起作用,因为React中不存在该事件。假设我不想使用React.Component重写Main,我应该使用什么事件,或者有其他方法吗

let Main = ({myEventMethod}) => (
    <main onComponentDidMount={myEventMethod}>
        ...
    </main>
)

const mapDispatchToProps = (dispatch) => ({
    myEventMethod: () => {...}
})

Main = connect(null, mapDispatchToProps)(Main)
let Main=({myEventMethod})=>(
...
)
const mapDispatchToProps=(调度)=>({
myEventMethod:()=>{…}
})
Main=connect(空,mapDispatchToProps)(主)

无状态函数没有组件生命周期方法

无状态函数没有组件生命周期方法


高阶组件来拯救

constwithcomponentdidmount=handler=>Cmp=>{
使用ComponentDidMount扩展组件的类{
render(){
返回
}
}
WithComponentDidMount.prototype.componentDidMount=handler
返回componentdidmount
}
const Wrapped=withComponentDidMount(函数(){
console.log('Mount')
})(应用程序)

更高阶的组件来拯救

constwithcomponentdidmount=handler=>Cmp=>{
使用ComponentDidMount扩展组件的类{
render(){
返回
}
}
WithComponentDidMount.prototype.componentDidMount=handler
返回componentdidmount
}
const Wrapped=withComponentDidMount(函数(){
console.log('Mount')
})(应用程序)

这有点难理解。你能把它放在我的例子中吗?你不明白哪一部分?顺便说一句,有一个演示,你可以叉和发挥。所以我用这个,而不是连接?与连接。HOC可以组合成
connect(…)(使用componentdidmount(myEventMethod)(Main))
现在我明白了。虽然我更愿意扩展React.Component有点难理解。你能把它放在我的例子中吗?你不明白哪一部分?顺便说一句,有一个演示,你可以叉和发挥。所以我用这个,而不是连接?与连接。HOC可以组合成
connect(…)(使用componentdidmount(myEventMethod)(Main))
现在我明白了。尽管我宁愿扩展React.Component
const withComponentDidMount = handler => Cmp => {
  class WithComponentDidMount extends Component {
    render() {
      return <Cmp {...this.props}/>
    }
  }

  WithComponentDidMount.prototype.componentDidMount = handler

  return WithComponentDidMount
}

const Wrapped = withComponentDidMount(function() {
  console.log('Mount')
})(App)