React-select 在 Laravel-mix 中没有显示价值
React-select doesn't show value in Laravel-mix
学校的一个项目组在 React 中交付了一个前端,我们必须为其制作一个后端。我们决定用 Laravel 来做到这一点。现在一切正常,除了一件事:下拉列表不显示我们的 Laravel-mix 应用程序中选择的值,但它在他们的 React 应用程序中显示。我们没有更改下拉代码中的任何内容,所以有人可以向我解释为什么它现在不起作用吗?我在 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>
);
}
}
我通过更改修复了它:
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}
/>
);
学校的一个项目组在 React 中交付了一个前端,我们必须为其制作一个后端。我们决定用 Laravel 来做到这一点。现在一切正常,除了一件事:下拉列表不显示我们的 Laravel-mix 应用程序中选择的值,但它在他们的 React 应用程序中显示。我们没有更改下拉代码中的任何内容,所以有人可以向我解释为什么它现在不起作用吗?我在 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>
);
}
}
我通过更改修复了它:
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}
/>
);