Как добавить значение по умолчанию в реакцию-выбрать?

avatar
Murtaza Manasawala
8 апреля 2018 в 02:39
1972
1
3

У меня есть реагирующий компонент, и я хочу добавить предопределенные значения в этот компонент. Как я могу это сделать? Мой компонент поля выбора реакции выглядит так:

import React from 'react';
import createClass from 'create-react-class';
import PropTypes from 'prop-types';
import Select from 'react-select';

var CreatableDemo = createClass({
displayName: 'CreatableDemo',
propTypes: {
    hint: PropTypes.string,
    label: PropTypes.string
},
getInitialState () {
    return {
        multi: true,
        multiValue: [],
        options: [],
        skills_data: [],
        value: undefined
    };
},
handleOnChange (value) {
    const { multi } = this.state;
    if (multi) {
        this.setState({ multiValue: value });

    } else {
        this.setState({ value });
    }
    let skills_arr = [];
    if(value != []){
        for(let i = 0; i < value.length; i++){
            skills_arr.push(value[i].value);
        }
        this.props.handleSkillsChange(skills_arr);
        this.setState({ skills_data: skills_arr });
    }
    else{ 
        this.setState({ skills_data: [] });
        this.props.handleSkillsChange(this.state.skills_data);
    }
},
render () {
    const { multi, multiValue, value, options } = this.state;
    return (
        <div className="section">
            <div className="validate-input m-b-26 div-space form-div" data-validate="Skills are required">
                <span className="label-input100">Skills</span>
                <Select.Creatable   multi={multi} options={options} onChange={this.handleOnChange} value={multi ? multiValue : value}/>
                <div className="hint">{this.props.hint}</div>

            </div>
        </div>
    );
}
});

export default CreatableDemo;

Я пытался найти другие ответы, но это не решило мою проблему. Я также добавил свои значения по умолчанию в массив как multiValue. Это не решает проблему

Источник
Agney
8 апреля 2018 в 04:01
0

Возможный дубликат Как установить значение по умолчанию в реакции-выбрать

Vishal
21 сентября 2018 в 04:41
0

Вы нашли какое-нибудь решение для этого?

Ответы (1)

avatar
Soroush Chehresa
8 апреля 2018 в 05:20
0

вы не указали полный код компонента и я не знаю значений multi и multiValue!

но проблема со значением реквизита value={multi ? multiValue : value}. вы проверяете наличие multi и передаете multiValue, но multiValue может быть неопределенным!

ваш код должен быть таким:

<Select.Creatable
    ...
    value={multiValue ? multiValue : value}
/>
Murtaza Manasawala
8 апреля 2018 в 06:25
0

Я пробовал это! Кажется, это не работает для меня! Я отправил значение в виде массива как в multi, так и в multiValue. Это не решает проблему.

Soroush Chehresa
8 апреля 2018 в 10:48
0

@MurtazaManasawala, пожалуйста, разместите полный код компонента в онлайн-редакторе, например jsfiddle.net, затем отправьте ссылку сюда