当前位置: 首页 > 知识库问答 >
问题:

反应子组件未接收道具[重复]

韦胜泫
2023-03-14

这是父组件:

class App extends Component {

defaultState = {
    test: "hello"
};

constructor(props) {
    super(props);
    this.state = this.defaultState
}

render() {
    return (
    <Router>
            <Switch>
                <Route key="home" path="/" test={this.state.test} component={HomeScreen}/>

            </Switch>
      </Router>
    );
}
}

这是子组件:

class HomeScreen extends Component{

 constructor(props) {
     super(props);
}

render(){
    return(
        <div>


            <p>Hello, Welcome to the app. {this.props.test}</p>
        </div>
    )
}
}

proptest不会打印为子组件中的内容。

可能是什么问题?,已经在这个问题上很久了

共有1个答案

万勇
2023-03-14

可以在中使用渲染函数

例子:

<Route path="/abc" render={()=><TestWidget num="2" someProp={100}/>}/>

查看渲染函数的文档

渲染函数应如下所示:

render() {
    return (
    <Router>
            <Switch>
                <Route key="home" path="/" render={(props) => <HomeScreen test={this.state.test} {...props} />}/>    
            </Switch>
      </Router>
    );
}
 类似资料:
  • 最后,在中有一个子组件,名为。这就是问题所在。我还将从获得的项传递到。因此,数据流是(连接)>(未连接)>(连接)。 连接到Redux。它使用redux中的一些操作来更新中的项。当我在中更新时,可以很好地接收更新后的数据,但是却什么都接收不到。中的项从未更新。 我发现问题出在将连接到Redux时。如果没有连接到redux,它也会接收更新的道具,就像一样。 组件如下。我已经试着尽可能地简化它们。 D

  • 我试图通过反应路由器将道具从一个组件传递到另一个组件。当我试图从子组件获取道具时,我得到了这样一条消息。这是我的代码: Tracks.jsx: app.jsx: Album.jsx:

  • 假设我想做这么简单的事 在这里,什么样的道具适合儿童? 其中子级可以是由scrollView、TextInput、Text等组成的本地组件

  • 我正在我的react项目中使用react路由dom V5。我需要通过受保护的路由将道具从应用程序组件(我在其中导入路由器)传递到子组件。问题是道具是空的,没有匹配、位置和历史记录。。 **应用组件 注意:我将道具从应用程序传递到需要使用this.props.match的子组件,但match未定义

  • 我有一个React.js组件,它被渲染成这样: 页面上有一些事件更新了此。状态电子邮件,因此,执行render,它会向组件发送一封新的道具。 在这个组件中,我正在监听这样的更新: 控制台行被渲染两次,这使得UI在调用社交网络时闪烁两次。 我总是可以做这样的事情: 但是感觉有点不舒服。。。 双重信息在意料之中吗?如果是这样,好奇为什么? 如果没有,追踪和消除它的最佳方法是什么?

  • 我正在使用react路由器dom v5。反应v16中的2.0。13.1项目中,我使用静态路由将道具从父组件传递到子组件,父组件从其父组件(即祖父)接收道具。从应用程序。js-