Redux表单组件 - >值toString()行为

时间:2016-09-06 13:02:17

标签: javascript reactjs redux-form

我对(react)redux表单中输入值的toString()行为有线问题。我需要一个下拉菜单,其中包含数字作为值。 json看起来像这样:

{
 id: 1
 [...]
}

我的组件如下所示:

export class DropdownField extends React.Component {
  render() {
    var { input, meta: { touched, error } } = this.props
    //The tries of changing input.value to string are placed here
    //e.g. input.value = "2"
    return (
      <div className="field">
        <select {...input}>
          <option value="1">1</option>
          <option value="2">2</option>
        </select>
      </div>
    )
  }
};

这里的问题是,input.value不是字符串,因此input.value = 2不会被识别为“2”。我想,我可以将input.value更改为字符串来解决这个问题。如果我这样做,它的效果很好

input.value = "2" //Works

但无论如何,如果我使用原始input.value我无法使其工作,所以以下不起作用:

input.value = input.value.toString(); //Doesn't work
input.value = "" + input.value; //Doesn't work
input.value = getString(input.value) //Doesn't work
//Just for completition, this plain stupid method. It runs in case 2, but still doesn't work
var getString = (input) =>
{
  switch(input)
  {
    case 1:
    return "1";
    case 2:
    return "2";
    default:
    return "what"
  }
}

有谁知道这里发生了什么?我真的只需要设置下拉框的初始值,其他一切都有效。只要我通过UI更改选择,input.value就会更改为相应的字符串值并可以保存。

0 个答案:

没有答案