Почему «реакция выбора» не работает с опциями из состояния? - PullRequest
0 голосов
/ 27 апреля 2020

Этот код работает нормально, потому что параметры находятся за пределами:

import React from 'react';
import Select from 'react-select';

const options = [
  { value: 'chocolate', label: 'Chocolate' },
  { value: 'strawberry', label: 'Strawberry' },
  { value: 'vanilla', label: 'Vanilla' },
];

class App extends React.Component {
  state = {
    selectedOption: null,
  };
  handleChange = selectedOption => {
    this.setState(
      { selectedOption },
      () => console.log(`Option selected:`, this.state.selectedOption)
    );
  };
  render() {
    return (
      <Select
        value={this.state.selectedOption}
        onChange={this.handleChange}
        options={options}
      />
    );
  }
}

, но этот код не работает, потому что параметры находятся внутри состояния

import React from 'react';
import Select from 'react-select';

class App extends React.Component {
  state = {
     options: [
       { value: 'chocolate', label: 'Chocolate' },
       { value: 'strawberry', label: 'Strawberry' },
       { value: 'vanilla', label: 'Vanilla' },
    ],
    selectedOption: null,
  };
  handleChange = selectedOption => {
    this.setState(
      { selectedOption },
      () => console.log(`Option selected:`, this.state.selectedOption)
    );
  };
  render() {    
    return (
      <Select
        value={this.state.selectedOption}
        onChange={this.handleChange}
        options={this.state.options}
      />
    );
  }
}

Если я использую параметры из состояния, консольный журнал внутри handleChange не возвращает selectedOption. Скажите пожалуйста, почему? Я хочу использовать этот плагин с параметрами из состояния ...

1 Ответ

0 голосов
/ 27 апреля 2020

Заменить options = [ на options: [.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...