答案 0 :(得分:1)
如果要使用通用组件(如上面定义的“选择一个组件”),则必须确保数据的格式符合组件的需求。在您的情况下,根据您的映射功能,每个项目都需要一个.id和一个.name:
public function updating($allestate)
{
if ($allestate->wasChanged(['price']) {
$allestate->old_price = $allestate->getOriginal('price');
$allestate->save();
}
}
因此,一种解决方案是在将数据捕获到诸如以下对象之类时重新格式化数据:
{options.map(option => (
<option key={option.id} value={option.id}>
{option.name}
</option>
))}
这可以通过在componentDidMount()方法中使用.map函数来完成。
另一种解决方案是将props传递给您的可重用组件,以告知要查找的字段:
{
"fkIDTeam": 1,
"id": 5,
"name": "Lewis Street",
"active": 1
}
然后像这样调用您的组件:
import React from "react";
const Select = ({ name, label, options, idKey, nameKey ...rest }) => {
console.log({ options });
return (
<div className="form-group">
<label htmlFor={name}>{label}</label>
<select name={name} id={name} {...rest} className="form-control">
<option value="" />
{options.map(option => (
<option key={option[idKey]} value={option[idKey]}>
{option[nameKey]}
</option>
))}
</select>
</div>
);
};
export default Select;
答案 1 :(得分:0)
您可以在这里做两件事。
<Select ... options={options} mappingConfig={config} />
const config = { id: "IDProject", name: "Project" }
现在在“选择组件”内部,您可以执行
{options.map(option => (
<option key={option[mappingConfig.id]} value={option[mappingConfig.id]}>
{option[mappingConfig.name]}
</option>
))}
答案 2 :(得分:0)
您缺少JSON数据结构中的键。您所需要做的就是查看JSON,以提供正确的密钥,在这种情况下,密钥为public void release() {
if (exoPlayer != null) {
exoPlayer.removeListener(eventListener);
exoPlayer.release();
exoPlayer = null;
dataSpec =null;
assetDataSource = null;
factory = null;
audioSource =null;
}
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
setPlayPause(false);
release();
finish();
}
和id
。除此之外,如果您要处理不同的有效负载,则可以将密钥作为道具传递给name
组件。