选择整个对象为值

时间:2016-11-28 15:43:15

标签: javascript reactjs ecmascript-6

在我的React选择输入中,我想遍历我的驱动程序数组,并为每个驱动程序生成带有单个驱动程序的值。但是,当我控制日志目标值时,我只有一个[对象对象],如果我尝试调用,例如,driver.driverName,我获得“undefined”。为什么呢?

<label className="pt-label pt-inline">
        Autista
        <div className="pt-select">
            <select onChange={this.changeDriver}>
                <option>Scegli autista</option>
                {this.props.drivers.map((driver) => {
                    return <option key={driver.key}
                                   value={driver}>{driver.driverName} {driver.driverLastname}</option>
                                    })}
            </select>
        </div>
</label>

2 个答案:

答案 0 :(得分:2)

driver的值是一个JS对象,但value的{​​{1}}属性需要一个字符串。在JavaScript中将对象解析为字符串将导致<option>。您需要在该空间中存储单个键值。如果在选择该选项时需要从对象中提取特定值,我建议在那里存储[object Object],然后将其用作回调函数中的查找引用。

答案 1 :(得分:0)

HTML选项值仅支持字符串值。您可以序列化对象以存储它,并在阅读时对其进行反序列化。