【发布时间】:2018-11-09 09:46:26
【问题描述】:
在我的 React 应用程序中,我通过将 changeView 方法作为 props 从父级传递到菜单来有条件地渲染视图,具体取决于在我的菜单组件中单击了哪个按钮。当前视图作为状态存储在父组件中。
我还想使用同样的changeView 方法来控制每个条件渲染视图中的按钮,以便在单击时返回菜单。
我目前是这样实现的:
render() {
let view;
switch(this.state.view) {
case 0:
view = (<Menu changeView={this.changeView} />);
break;
case 1:
view = (<View changeView={this.changeView}>Test 1</View>);
break;
case 2:
view = (<View changeView={this.changeView}>Test 2</View>);
break;
default:
view = (<View changeView={this.changeView}>An error has ocurred!</View>);
}
return (
<div>
{view}
</div>
);
}
如您所见,我必须将changeView 方法单独传递给View 组件的每个实例。有什么方法可以设置 View 组件,以便每个实例都传递 changeView 属性,而无需我每次都显式声明它?
【问题讨论】:
标签: javascript reactjs