我在 ReactJS 中有一个项目,因为我有 3 种不同的视图来显示数据。为此,我有 3 个不同的组件。
我有一个父组件,其中有一个名为 Rotate 的按钮和三个选项,两个更改视图。
我的要求是我需要根据视图类型设置旋转按钮的可见性,例如 ViewType1 旋转按钮应该是可见的,而对于其他类型的视图,旋转按钮应该是隐藏的。
下面是我的代码:
父组件
class ParentView extends Component {
constructor(props) {
super(props);
this.state = {
isViewType1: true
};
this.setRotateButtonVisibility = this.setRotateButtonVisibility.bind(this);
}
setRotateButtonVisibility(isType1) {
this.setState({isViewType1 : isType1});
}
render() {
return(
{this.state.isViewType1 && (
<button id="btnRotate" className="btn btn-default">Rotate</button>)
}
<Switch>
<Route
exact
path="/project/:projectID"
render={() => (
<Viewtype1/>
)}
/>
<Route
exact
path="/project/:projectID/ukeyview"
render={() => (
<Viewtype2/>
)}
/>
<Route
exact
path="/project/:projectID/proxystructureview"
render={() => (
<Viewtype3/>
)}
/>
</Switch>
)}
那么,如何根据视图类型调用 setRotateButtonVisibility() 函数呢?
或者
如何根据视图类型设置状态?
我已经尝试过子组件的 callBackFunc 但它不允许更改状态。
我也尝试过以下代码:
<Route
exact
path="/project/:view
{...this.setRotateButtonVisibility(false)}
render={() => (
<Viewtype3/>
)}
/>
但没有任何工作正常。