javascript - React 组件内的三元条件

标签 javascript reactjs

我弄清楚 handleToggleClick() 方法中的 true/false 条件有什么问题...

当按钮被单击一次时,第二次单击它不想重新识别(变量 prop showWarning 中仍然是 false 状态)。

function WarningBanner(props) {
  if (!props.warn) {
    return null;
  }

  return (
    <div className="warning">
      Warning!
    </div>
  );
}

class Page extends React.Component {
  constructor(props) {
    super(props);
    this.state = {showWarning: true};
    this.handleToggleClick = this.handleToggleClick.bind(this);
  }

  handleToggleClick() {
    this.setState(prevState => ({
      showWarning: true ? false : true // this is where I have a problem.
    }));
  }

  render() {
    return (
      <div>
        <WarningBanner warn={this.state.showWarning} />
        <button onClick={this.handleToggleClick}>
          {this.state.showWarning ? 'Hide' : 'Show'}
        </button>
      </div>
    );
  }
}

ReactDOM.render(
  <Page />,
  document.getElementById('root')
);

最佳答案

 true ? false : true

这始终是false,因为true始终是true,并且三元总是进入第一个表达式。您可能想要:

 showWarning: !showWarning

或者如果您确实需要三元:

 showWarning: showWarning ? false : true

关于javascript - React 组件内的三元条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49011373/

相关文章:

javascript - 使用 document.getElementById 不适用于 php 表单

javascript - 下面的两个代码有什么区别(我运行了它们,但它们给出了不同的输出)

javascript - 使用大数据集中较旧的/未发布的数据进行刷新

javascript - 在react中设置背景图片

reactjs - react /Redux : Where to process data from API response and dispatching action from reducers

css - 在 Gulp 中使用 babelify,将 css 导入到意外标记 "{"

javascript - 重构 Javascript 代码 - 需要重构

javascript - 引用错误 : is not defined

javascript - D3.js 在径向树中添加元素之间的链接(分层边缘捆绑元素)

reactjs - React js getDerivedStateFromProps 正在连续调用