javascript - setState 不适用于 React 和 Meteor 中的 UI 更改

标签 javascript meteor reactjs setstate

我正在尝试使用按钮来切换 UI 显示。当用户点击按钮时,它将显示相应的 UI。当用户再次点击时将隐藏它。我使用 setState 来切换“showItemBank”的值,但 UI 只显示一次,然后又恢复为默认不可见。我错过了一些重要的事情吗?

这是我的应用程序使用 Meteor 和 React 的 jsx。

App = React.createClass ({

mixins: [ReactMeteorData],

getInitialState() {
    return {
      showItemBank: false
    }
},

onItemBankClick(event) {
    this.setState({
        showItemBank : ! this.state.showItemBank
    });

},

render() {
    var classItemBank = ""; 
    var classNewQuestion = ""; 
    if(this.state.showItemBank === false){ 
        classItemBank = "displayNone"; 
    } 
    if(this.state.showItemBank === true){ 
        classItemBank = "displayContent"; 
    }

    return (
        <div className="container">
            <header>
                <form className="new-task" >
                    <div>
                        <button onClick={this.onItemBankClick} className="menu">Select From the Item Bank</button>
                        <button className="menu">Add New Questions</button>
                    </div>
                    <div className={classItemBank}> Hi i am from ItemBank </div>    
                </form>

            </header>
        </div>
    );
}

  });

最佳答案

试试这个

onItemBankClick(event) {
    event.preventDefault();
    this.setState({
        showItemBank : ! this.state.showItemBank
    });

}

按钮将默认尝试提交页面

关于javascript - setState 不适用于 React 和 Meteor 中的 UI 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33224312/

相关文章:

android - 在 Meteor.js 中存储用户设备的 deviceId 和 token 的位置(推送通知)

javascript - react : how to check and uncheck a checkbox

reactjs - 如何在创建 react 应用程序中进行应用程序版本控制?

javascript - 使用 Phantom.js 的 Headless Browserify JavaScript 测试

php - 不确定我使用 PHP AJAX 的开发模式

javascript - 如何检测 Meteor JS 中整个文档的事件?

windows - Babun 或 Cygwin 与 meteor

reactjs - 为什么 useEffect 不能在 window.location.pathname 更改时运行?

javascript - 设置 body.style.fontSize 后 CSS 字体大小不起作用

javascript - 悬停滑动选项卡机制