【发布时间】:2019-01-28 06:02:18
【问题描述】:
我正在使用 semantic-ui-react 下拉列表,我工作得很好。问题是,在我的表单上,我使用 Mobx 存储从数据库中提取数据。我为下拉列表中的选项设置了一个数组。当表单从商店加载时,下拉列表的文本字段为空白,如果单击下拉列表,我可以看到所选选项突出显示(粗体)。如何让文本字段显示默认选项。如果有人可以查看它并告诉我我需要做什么,我在下面包含了一些代码。
感谢您的所有帮助。
这是下拉列表的代码:
<div className="col-sm-3">
<div className="bg-primary text-white text-center">
Driver
</div>
<div>
<Dropdown
selection
fluid
id="driver"
name="driver"
ref="driver"
onChange={this.handleChange}
value={this.props.EquipmentStore.truck_detail.driver}
options={this.props.EquipmentStore.driver_list}/>
</div>
</div>
这是我构建 driver_list 的方式,我基本上是从数据库中获取用户列表并创建一个包含值和文本字段的数组
let newUserItem = {
value: getUser.id,
text: getUser.first_name + " " + getUser.last_name
};
this.driver_list.push(newUserItem)
truck_detail.driver 中的值是一个数字值,与 driver_list 值字段中的 value 字段中的值相同...一切正常,我无法获取要在文本字段中显示的文本值默认下拉列表。
这是我用来构建选项列表的代码:
async loadDriverList() {
let endpoint = '/api/users/profile/?owner=True';
this.driver_list.length = 0;
let lookupOptions = {
method: "GET",
headers: {
'Content-Type': 'application/json'
}
};
try {
const response = await fetch(endpoint, lookupOptions);
const profile_list = await response.json();
const userItem = {value:0, text:'Select Driver'};
this.driver_list.push(userItem);
let array_length = profile_list.length;
for (let i = 0; i < array_length; i++) {
let ownerId = profile_list[i].user;
let endpoint = '/api/users/users/' + ownerId + '/';
let userList = await fetch(endpoint, lookupOptions);
let getUser = await userList.json();
let newUserItem = {
value: getUser.id,
text: getUser.first_name + " " + getUser.last_name
};
this.driver_list.push(newUserItem)
}
} catch(e) {
console.log(e)
}
}
【问题讨论】:
-
您能否发布一个输入下拉菜单的数据示例?
-
我已经编辑了我的帖子以包含用于构建选项列表的代码。该代码位于 MobX 商店中。
-
然后您只需将一些数据输入到下拉列表中,例如:
const driver_list = [{text: 'Driver', value: 1}, {text: 'Driver 2', value: 2}]?文本是否位于对象中的值之前?另外,this.props.EquipmentStore.truck_detail.driver是像 2 这样的数字吗?只是一个数字,没有钥匙还是什么? -
这可能只是一些奇怪的东西,比如下拉列表需要文本之前的值。语义可以像那样真的很有趣
-
好的,我已经修复了它...问题是在呈现表单时还没有填充drivers_list。毕竟为了填充列表,我正在使用对数据库的 api 调用。我将代码移到了链中的其他位置,现在它正在工作....非常感谢您的帮助。
标签: reactjs dropdown semantic-ui-react