Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 在上下文中传递道具[反应]_Reactjs - Fatal编程技术网

Reactjs 在上下文中传递道具[反应]

Reactjs 在上下文中传递道具[反应],reactjs,Reactjs,我有5代组件结构: A-B-C-D-E 首先,我创建一个上下文: const ThemeContext = React.createContext(); 在中,将创建一个提供程序 <ThemeContext.Provider value={this.props.name} > <Col><Menu navbarState={this.state.name} /></Col> </Th

我有5代组件结构: A-B-C-D-E

首先,我创建一个上下文:

const ThemeContext = React.createContext();
在中,将创建一个提供程序

     <ThemeContext.Provider value={this.props.name} >
                    <Col><Menu navbarState={this.state.name} /></Col>
    </ThemeContext.Provider>
链接类名称的输出为“[Object,Object]”


如何正确传递道具?

字符串化对象,如
“[对象,对象]”
表示对象值是在需要字符串的位置提供的

应该是:

<ThemeContext.Consumer>
    {value => <Col><Link className={value} to= "/HomePage">Panel</Link></Col>}
</ThemeContext.Consumer>

正如旁注,React开发团队不建议继承组件。相反,你应该使用构图。嗯,所以如果我在另一个组件中使用组件中的组件,这不是推荐的做法?使用组件的组合是可以的。但在这里,您的组件继承了RoleAwareComponentUser。您应该看看更高阶的组件。然后没有传递提供程序值,或者
props。name
是falsy。如果没有父母,就会发生这种情况。从您发布的代码来看,这并不清楚,即A和e是如何关联的。请提供可以复制您的问题的。
<ThemeContext.Consumer>
    {value => <Col><Link className={value} to= "/HomePage">Panel</Link></Col>}
</ThemeContext.Consumer>
<ThemeContext.Provider value={this.props.name}>...