setState ReactJS Material UI 不工作

setState ReactJS Material UI is not working

我有下一个问题。我希望当我单击一个 MenuItem 时,我的组件的状态会随着单击的 MenuItem 的名称而改变。我这样做:

export default class MenuAlumno extends React.Component {
constructor() {
    super();
    this.state = {
        drawerOpen:false,
        currentPage: 'Inicio'
    }
};

currentPages = (currentPage) => {
    this.setState({ 
        currentPage: currentPage
    });
    //this.state.currentPage = currentPage;
}

render() {
    return (
        <div>
            <Drawer 
                docked = {false}
                width = {200}
                open = {this.state.drawerOpen}
                onRequestChange = {(drawerOpen) => this.setState({drawerOpen})}
            >
                <MenuItem primaryText = "Inicio" onTouchTap = {this.currentPages('Inicio')} containerElement = {<Link to="/administrador/inicio"/>}/>
                <MenuItem primaryText = "Nueva Incidencia" onTouchTap = {this.currentPages('Nueva Incidencia')} containerElement = {<Link to="/administrador/nueva_incidencia"/>}/>
                <MenuItem primaryText = "Incidencias Recibidas" onTouchTap = {this.currentPages('Incidencias Recibidas')} containerElement = {<Link to="/administrador/incidencias_recibidas"/>}/>
                <MenuItem primaryText = "Informes" onTouchTap = {this.currentPages('Informes')} containerElement = {<Link to="/administrador/informes"/>}/>
            </Drawer>
        </div>
    );
}

但是我有下一个错误:

Warning: setState(...): Cannot update during an existing state transition (such as within 'render' or another component's constructor). Render methods should be a pure function of props and state; constructor side-effects are an anti-pattern, but can be moved to 'componentWillMount'.

会是什么?谢谢大家

编辑:----

如果我这样做:(添加 ()=> 开始调用函数)

<MenuItem primaryText = "Inicio" onTouchTap = {() => this.currentPages('Inicio')} containerElement = {<Link to="/administrador/inicio"/>}/>
                <MenuItem primaryText = "Nueva Incidencia" onTouchTap = {() => this.currentPages('Nueva Incidencia')} containerElement = {<Link to="/administrador/nueva_incidencia"/>}/>
                <MenuItem primaryText = "Incidencias Recibidas" onTouchTap = {() => this.currentPages('Incidencias Recibidas')} containerElement = {<Link to="/administrador/incidencias_recibidas"/>}/>
                <MenuItem primaryText = "Informes" onTouchTap = {() => this.currentPages('Informes')} containerElement = {<Link to="/administrador/informes"/>}/>

我没有任何错误,但无法正常工作。当我单击状态时,状态未更新,继续 'Inicio',当我再次单击相同的选择时,状态发生变化(但仅当我在同一选项上单击两次时)。我认为这可能是由于 Link 到其他重新呈现菜单组件的路由。有什么解决办法吗?

谢谢。

当我使用我想设置为当前页面的名称调用我的组件 MenuAlumno 时,我解决了添加道具的问题。有用。如果有人有其他解决方案,我会很乐意尝试。再见