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

将道具从孙辈传递给父母

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

将道具从孙辈传递给父母

如果您正在做一些简单的事情,那么通常最好将状态更改通过组件层次结构传递,而不是专门为此目的创建存储(不管它可能是什么)。我将执行以下操作:

面包屑项目

var React = require('react/addons');var BreadcrumbItem = React.createClass({embiggenMenu: function() {    this.props.embiggenToggle();},render: function() {    return ( <div id="embiggen-sidemenu" onClick={this.embiggenMenu} />    );}});module.exports = BreadcrumbItem ;

然后通过BreadcrumbList组件将其传递给父对象。

 <BreadcrumbItem embiggenToggle={this.props.embiggenToggle}>

…并转到App,然后使用它来设置状态。…

var React = require('react/addons');var App = React.createClass({embiggenMenu: function() {    this.setState({        menuBig: !this.state.menuBig    });},render: function() {    return (        <div> <BreadcrumbList embiggenToggle={this.embiggenMenu} />        </div>        )    }});module.exports = BreadcrumbItem;

本示例切换一个简单的布尔值,但是您可以忽略任何喜欢的内容。我希望这有帮助。

我尚未对此进行测试,但是(已)从一个实际的工作示例中将其快速删除。


编辑:根据要求,我将在含糊的地方进行扩展:“您可以放弃任何东西”。

如果您要基于数组制作导航菜单,并且需要将所选项目传递给父项,则可以执行以下操作

var React = require('react/addons');var ChildMenu = React.createClass({getDefaultProps: function () {    return {        widgets : [ ["MenuItem1"], ["MenuItem2"], ["MenuItem3"], ["MenuItem4"], ["MenuItem5"], ["MenuItem6"], ["MenuItem7"]        ]    }},handleClick: function(i) {    console.log('You clicked: ' + this.props.widgets[i]);    this.props.onClick(this.props.widgets[i]);},render: function() {    return (        <nav> <ul>     {this.props.widgets.map(function(item, i) {         var Label = item[0];         return (  <li      onClick={this.handleClick.bind(this, i)}      key={i}>      {Label}  </li>         );     }, this)} </ul>        </nav>    );}});module.exports = ChildMenu;

然后,您将在父级中执行以下操作:

var React = require('react/addons');var ChildMenuBar = require('./app/top-bar.jsx');var ParentApp = React.createClass({widgetSelectedClick: function(selection) {    //LOGGING    //console.log('THE APP LOGS: ' + selection);    //VARIABLE SETTING    var widgetName = selection[0];    //YOU CAN THEN USE THIS "selection"    //THIS SETS THE APP STATE    this.setState({        currentWidget: widgetName    });},render: function() {        return (     <ChildMenu onClick={this.widgetSelectedClick} />        );    }});module.exports = ParentApp;

我希望这有帮助。感谢您的支持。



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

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

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