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}
      />
    );