一个项目组从学校提供了一个正面的反应,我们必须做一个后端。我们决定和Laravel一起这么做。现在一切都很好,除了一件事:下拉列表在我们的Laravel应用程序中没有显示选择的值,但是在他们的React应用程序中显示了。我们没有改变下拉代码中的任何内容,所以有人能解释一下为什么它现在不起作用吗?我在反应方面不是很有经验,所以我们很感谢你的帮助。
这是代码:
/* handleChange passes the selected dropdown item to the state. */
handleChange = (selectedOption) => {
this.setState({ selectedOption });
if (selectedOption) {
console.log(`Selected: ${selectedOption.label}`);
}
};
/* This render function, renders the grid, dropdown-menu, 'Add Item'-button
* and 'Reset Layout'-button. This is also where the createElement() function
* is called for each grid item.
*/
render() {
const { selectedOption } = this.state;
const value = selectedOption && selectedOption.value;
return (
<div>
<div className='widgetselecter'>
<Select className='dropdown'
name="form-field-name"
value={value}
onChange={this.handleChange}
options={[
{ value: 'one', label: 'One' },
{ value: 'Clock', label: 'Clock' },
{ value: 'Photo', label: 'Photo' },
{ value: 'Weather', label: 'Weather' },
]}
/>
<button className='addButton' onClick={this.onAddItem}>Add Item</button>
<button className='reset' onClick={this.onLayoutReset}>Reset Layout</button>
<span className='title'>/Dash</span>
</div>
<ResponsiveReactGridLayout
onLayoutChange={this.onLayoutChange}
onBreakPointChange={this.onBreakPointChange}
{...this.props}>
{_.map(this.state.items, el => this.createElement(el))}
</ResponsiveReactGridLayout>
</div>
);
}
}发布于 2018-10-02 15:39:48
我改变了它:
value={value}至:
value={selectedOption}并移除:
const value = selectedOption && selectedOption.value;因此,它与https://github.com/JedWatson/react-select上的示例代码匹配。
handleChange = (selectedOption) => {
this.setState({ selectedOption });
console.log(`Option selected:`, selectedOption);
}
render() {
const { selectedOption } = this.state;
return (
<Select
value={selectedOption}
onChange={this.handleChange}
options={options}
/>
);https://stackoverflow.com/questions/52604423
复制相似问题