选择以整个对象作为值的选项

Arc*_*rcy 6 javascript ecmascript-6 reactjs

在我的 React 选择输入中,我想迭代驱动程序数组,并为每个驱动程序生成单个驱动程序作为值。但是,当我控制台记录目标值时,我只有一个 [object Object],如果我尝试调用,例如 driver.driverName,我会得到“未定义”。为什么?

<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>
Run Code Online (Sandbox Code Playgroud)

小智 6

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


Qua*_*ali 1

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