javascript - 在检查reactjs上显示选择

标签 javascript reactjs checkbox state

我试图让一个选择在检查时显示/隐藏,但选择只是呈现并且不会消失或重新出现。我对 react 还很陌生,所以我确信我做错了什么。

export default class TreeTest extends Component {
  constructor() {
    super();

    this.state = {
      checked: [
        '/grantSettingsPermissions/Admin',
        '/grantSettingsPermissions/ContentGroups/AddLocations', 
      ],
      expanded: [
        '/grantSettingsPermissions',
        '/grantSettingsPermissions/ContentGroups',
      ],
    };

    this.onCheck = this.onCheck.bind(this);
    this.onExpand = this.onExpand.bind(this);
    this.handleChange = this.handleChange.bind(this);
  }

  onCheck(checked) {
    console.log(checked);
    this.setState({
      checked,
    });
  }

  onExpand(expanded) {
    this.setState({
      expanded,
    });
  }

  handleChange() {
    this.setState({
      checked: !this.state.checked,
    });
  }

  render() {
    const { checked, expanded } = this.state;
    const content = this.state.checked
    ? <select>
  <option value="test1">test1</option>
  <option value="test2">test2</option>
</select>
      : null;
    return (
            <div>
              { content }
              <CheckboxTree
                  checked={checked}
                  expanded={expanded}
                  nodes={nodes}
                  onCheck={this.onCheck}
                  onExpand={this.onExpand}
                  expandDisabled={true}
                  onChange={ this.handleChange }
              />
          </div>
    );
  }
}

我有一种感觉,我只需要向 onCheck 函数添加一些东西,但我不完全确定。任何帮助都会很棒!

最佳答案

您的情况应该是:

const content = this.state.checked.length === 0
  ? <select>
    <option value="test1">test1</option>
    <option value="test2">test2</option>
  </select>
  : null;

关于javascript - 在检查reactjs上显示选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45970022/

相关文章:

javascript - 传递给组件的 prop 返回未定义

node.js - 选择多个复选框在 Puppeteer headless 浏览器中不起作用

c# - C# 中的复选框数组

javascript - 如何根据复选框状态禁用/启用提交按钮?

javascript - 如何从外部 JS 文件调用 Python 函数?

JavaScript 方法 `createElement`(可能)生成无效的 XHTML

javascript - 使用 Google Analytics 跟踪内容脚本

node.js - cd 到 package.json 中的正确文件夹

javascript - 将 if/else 逻辑添加到 JavaScript 过滤器

javascript - 无法在 react 中使用 setinterval() 附加数组(状态元素)