provider是根组件,怎么还有this.props


  • 0

    0_1505885748777_upload-ca85557f-7cb2-4bd8-986e-37fabdb34be5
    这是第40课手写的provider组件,它不是根组件吗?怎么还有this.props?不是父组件传给子组件才有props吗?


  • 0

    这是两件事儿。

    1. 关于 jsx

    你定义一个组件的时候,实际上是定义了一个构造函数(或者ES6语法糖,叫类),以 state-less 写法就明白了,其实隐含了一个参数 props。自定义参数都挂在这个 props 对象上。当然了,你可以不定义这个参数。

    function YouDefindedComponent(props) {
      return (
        ....
        {prop.xxx}
      );
    }
    

    这个 props 在你调用该组件时 <YouDefindedComponent xxx={...} />,这时,props = { xxx: ... }。被编译成

    React.createElement(YouDefindedComponent, props)
    
    1. 关于 redux

    而 redux 是个范式,是个约定,你遵守不遵守,props 都存在的。

    多写两行,别抠字眼, 中文版的 react 文档


  • 0

    @xinleibird 看来是我对props的理解太狭隘了。多谢指教。我再去看看相关资料


登录后回复
 

与 ScriptOJ 的连接断开,我们正在尝试重连,请耐心等待