栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将父状态传递给其子组件?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将父状态传递给其子组件?

如果您想通过状态{name:“ helloworld”},请按照以下步骤操作:

class App extends React.Component {constuctor(props)  {     super(props);     this.state = {name:"helloworld"};} render() {   return(    <ChildComponent {...this.state} />   );  } }

在子组件中,您可以执行以下操作:

<Text>{this.props.name}</Text>

但是,如果要将组件的道具传递给它的子组件,则:

   class App extends React.Component {    constuctor(props)  {         super(props);         this.state = {name:"helloworld"};    }     render() {       return(        <ChildComponent {...this.props} />      );      }     }

在子组件中,您可以执行以下操作:

<Text>{this.props.stuff}</Text>//place stuff by any property name in props

现在,如果您想从子组件中更新父组件的状态,则需要将一个函数传递给子组件:

 class App extends React.Component {    constuctor(props)  {         super(props);         this.state = {name:"helloworld"};    }    update(name){       this.setState({name:name})// or with es6 this.setState({name})    }    render() {      return(       <ChildComponent {...this.props, update: this.update.bind(this)} />     );     }   }

然后在子组件中可以使用:

this.props.update('new name')

更新

使用更多es6并删除构造函数

class App extends React.Component {    state = {name:"helloworld"};    // es6 function, will be bind with adding .bind(this)    update = name => {       this.setState({name:name})// or with es6 this.setState({name})    }    render() {      // notice that we removed .bind(this) from the update     return(     //send multiple methods using ','      <ChildComponent {...this.props, update = this.update} />     );     }   }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/514897.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号