【问题标题】:Having a problem with PrimeReact DropdownPrimeReact 下拉菜单有问题
【发布时间】:2020-11-13 22:47:48
【问题描述】:

我还是 React Js 的新手,最近我一直在使用 PrimeReact 进行开发。 Forms 和 DataTables 对我来说做得很好,但我似乎无法弄清楚如何处理 Dropdown。我的状态由 redux 管理,在mapStateToProps 我使用componentDidMount 加载我的数据之后,我可以console.log 并查看我的数据数组。通过正常的反应选择输入,我一直在使用以下代码:

const {accounttypes} = this.props;

    console.log(accounttypes)
    let typesOptions = accounttypes.length > 0
        && accounttypes.map((item, index) => {
            return (
                <option key={item.id } value={item.id}>{item.name}</option>
            )
        }, this);

这是一个选项,因为我可以发布到我的后端。但是,我想将 PrimeReact 用于我的所有表单,并且我一直在努力解决如何去做。以下是我的尝试,让我头疼:

<div className="p-field p-col-12 p-md-4">
                <Dropdown
                  value={account_type}
                  optionValue = {accounttypes.id}
            
                  optionLabel = {accounttypes.name} 
                  options={accounttypes}

                  onChange={this.onTypeChange}
                  placeholder="Select an Acco"
                  autoFocus = {true}
                  editable={true}
                />
</div>

account_type 是我的字段名称,我的 django 模型引用了 accountytpe 模型,并希望在创建 Account 时捕获 account_type。可以有人帮忙。并提前感谢

【问题讨论】:

    标签: reactjs primereact


    【解决方案1】:

    optionLabeloptionValue 应该指向对象的等效属性。在你的情况下,我猜正确的方法是这样的

                      optionValue="id"
                      optionLabel="name"
    

    【讨论】:

    • 谢谢@Apostolos,如果我可以问我如何引用属性,如果我输入 id 和 name 它说它是未定义的。我必须在状态中定义名称和 id 还是有一个必须提取 id 和名称的函数???.
    • 这些是您的对象的属性。 id 怎么可能是未定义的?那个;很奇怪
    • 非常感谢它的工作方式,就像你说我应该说的那样。我想当我提到这些对象时有错别字。非常感谢你让我开心
    • 再次感谢,我学到了一个新技巧,当你回答时,你会接受答案。我非常感谢你为我所做的一切
    猜你喜欢
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    相关资源
    最近更新 更多