【问题标题】:When treeselect has null value it won't show当 treeselect 有空值时,它不会显示
【发布时间】:2019-12-03 10:20:58
【问题描述】:

我需要TreeNode 中的antd TreeSelect 来获得null 的值。 但是当它有一个值null 时,它不会在TreeSelect 中显示它

<Tree.TreeNode value={null} title="Head menu"/>

我该如何解决这个问题?

新建->

getSubSelectTree = (topMenuItem: TopMenuItem) => {
    if (topMenuItem.subMenu.length > 0) {
        let subMenuTreeNodes = [];
        for (let x = 0; x < topMenuItem.subMenu.length; x++) {
            subMenuTreeNodes.push(this.getSubSelectTree(topMenuItem.subMenu[x]));
        }
        return <Tree.TreeNode key={topMenuItem.id.toString()} title={topMenuItem.name}
                              value={topMenuItem.id}>{subMenuTreeNodes}</Tree.TreeNode>
    }
    return <Tree.TreeNode key={topMenuItem.id.toString()} title={topMenuItem.name} value={topMenuItem.id}
    />;
};

getSelectTree = () => {
    if (this.props.menuState.topMenu !== null) {
        if (!this.props.menuState.topMenu.loading) {
            let treeNodes = [];
            for (let x = 0; x < this.props.menuState.topMenu.menuItems.length; x++) {
                treeNodes.push(this.getSubSelectTree(this.props.menuState.topMenu.menuItems[x]));
            }
            return <TreeSelect
                placeholder="Selecteer onder welk menu item het moet komen."
                allowClear
            >
                <Tree.TreeNode value={"" + null} title={"Head menu"}/>
                {treeNodes}
            </TreeSelect>;
        }
    }
    return <></>;
};

这是我现在的代码。我唯一想要的是有一个额外的 TreeNode,它说它是一个主菜单,我在创建时不会有父级。在水下它是无效的

【问题讨论】:

标签: reactjs typescript antd


【解决方案1】:

要简单地显示标题,您可以删除该值并如下所示使用它

 <Tree>
    <Tree.TreeNode title={"Head Menu"}></Tree.TreeNode>
 </Tree>

【讨论】:

  • 然后它仍然没有在主 组件中显示“Head Menu”
  • 你能不能只创建一个代码框,以便检查。我已经在本地尝试了上面的 sn-p 显示
【解决方案2】:

你的问题是TreeSelect,但你的代码是Tree。不要混淆。

如果是TreeSelect,则prop value 需要是objectstringfalse,而不是nullundefined。每个TreeNode 必须是唯一的。查看demo,让我知道

render() {
    return (
      <TreeSelect
        showSearch
        style={{ width: "100%" }}
        value={this.state.value}
        dropdownStyle={{ maxHeight: 400, overflow: "auto" }}
        placeholder="Please select"
        allowClear
        treeDefaultExpandAll
        onChange={this.onChange}
      >
        <TreeNode value="parent 1" title="parent 1" key="0-1">
          <TreeNode value="parent 1-0" title="parent 1-0" key="0-1-1">
            <TreeNode value={"" + undefined} title="my leaf" key="random" />
            <TreeNode value={"" + null} title="your leaf" key="random1" />
          </TreeNode>
          <TreeNode value="parent 1-1" title="parent 1-1" key="random2">
            <TreeNode
              value={false}
              title={<b style={{ color: "#08c" }}>sss</b>}
              key="random3"
            />
          </TreeNode>
        </TreeNode>
      </TreeSelect>
    );
  }

【讨论】:

  • 我要选择的 意味着它没有父节点。我正在构建一个 cms,但它需要为愚蠢的人提供证据。所以我需要一个带有文本的 Select,它将是一个 Head 菜单,并且没有这样的父菜单
  • 您可以创建一个代码沙箱或编辑您的帖子并添加详细信息吗?
  • 编辑了我的帖子
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 1970-01-01
  • 1970-01-01
  • 2014-06-16
  • 2019-05-20
  • 2015-03-25
  • 2013-11-17
相关资源
最近更新 更多