Javascript 无法获取输入选择窗体的初始值

Javascript 无法获取输入选择窗体的初始值,javascript,reactjs,react-select,Javascript,Reactjs,React Select,我正在对输入字段使用react select。除了单击后在输入中获取所选值之外,一切都正常。另外(正如标题中提到的),我无法看到初始值在select字段中弹出,尽管它是在代码中设置的 render(){ var Select = require('react-select'); var options = [ { value: '1', label: '1' }, { value: '2', label: '2' } ]; f

我正在对输入字段使用react select。除了单击后在输入中获取所选值之外,一切都正常。另外(正如标题中提到的),我无法看到初始值在select字段中弹出,尽管它是在代码中设置的

  render(){
    var Select = require('react-select');
    var options = [
        { value: '1', label: '1' },
        { value: '2', label: '2' }
    ];

    function logChange(val) {
      console.log(val);
    }
    return(

        <Select
          name="form-field-name"
          value="one"
          options={options}
          onChange={logChange}
        />

   );
render(){
var-Select=require('react-Select');
变量选项=[
{值:'1',标签:'1'},
{值:'2',标签:'2'}
];
功能日志更改(val){
控制台日志(val);
}
返回(
);
所有事件都正常工作(我可以在我的console.log上看到,但屏幕上没有任何变化)

这是控制台.log渲染(null是因为X图标清除)


阅读源代码后,我确信您将错误的值传递到
值中

尝试在
选项属性
中查找传递的值(从
值属性
),如果失败,则返回
未定义的

for (var i = 0; i < options.length; i++) {
    if (options[i][valueKey] === value) return options[i];
}
回答您的评论问题: 我不确定,但对我来说,这看起来像是受控输入。您的选择值位于使用prop中的值的内部。 我认为你必须这样做:

class MySelect extends React.Component {

    constructor(props) {
        super(props)

        this.state = {
            value: "1"
        }

        this.handleChange.bind(this)
    }

    handleChange(selectedValue) {
        this.setState({ value: selectedValue })
    }

    render() {
        return (
            <Select
                name="form-field-name"
                value={this.state.value}
                options={options}
                onChange={this.handleChange} />
        )
    }
}
类MySelect扩展了React.Component{
建造师(道具){
超级(道具)
此.state={
值:“1”
}
this.handleChange.bind(this)
}
handleChange(selectedValue){
this.setState({value:selectedValue})
}
render(){
返回(
)
}
}

您忘记添加此关键字
onChange={this.logChange}
。进一步看看这个例子,它只会让事情变得更糟……不需要这样做……当添加这个前缀时,控制台中没有显示任何内容。我已经得到了我的初始值,tnx,但是当我单击它时,值如何仍然没有改变?我应该在我的logChange方法上添加参数吗?它看起来像是受控组件().我想onChange函数可以让你在应该使用的状态上设置值。Tnx man.我原以为react select会为我做所有的事情,但似乎没有。。
class MySelect extends React.Component {

    constructor(props) {
        super(props)

        this.state = {
            value: "1"
        }

        this.handleChange.bind(this)
    }

    handleChange(selectedValue) {
        this.setState({ value: selectedValue })
    }

    render() {
        return (
            <Select
                name="form-field-name"
                value={this.state.value}
                options={options}
                onChange={this.handleChange} />
        )
    }
}