TypeError:无法在Input(tags.js:64)中读取未定义的属性“value”

时间:2017-10-26 11:12:53

标签: reactjs

我做错了什么?

我正在尝试使用valuelink来管理我的表单状态,但是我收到了错误:

  

未捕获的TypeError:无法读取undefined的属性“value”       在输入(tags.js:64)       在mountIndeterminateComponent(react-dom.development.js:10400)

首先我创建了一个包装器输入..

// MyInput
import Link, { LinkedComponent } from 'valuelink';
import { Input } from 'valuelink/tags';
export default class extends LinkedComponent /* I tryed extends from PureComponent too */ {
  state = {};
  render() {
    <Input {...rest} />
  }
}

我正试图在另一个组件中使用..

import Link, { LinkedComponent } from 'valuelink';
import MyInput from 'components/MyInput';
export default class extends LinkedComponent {
  render() {
    const linked = this.linkAll();
    return <MyInput valueLink={linked.fieldTest} />
  }
}

3 个答案:

答案 0 :(得分:1)

要修复..我需要明确声明状态中的所有字段。

state = {
  field1: undefined
};

答案 1 :(得分:0)

显然valueLink已被弃用(很久以前)。使用值而不是onChange。请参阅解释它的this SO link

答案 2 :(得分:0)

是的,这个答案是正确的:

state = {
  field1: undefined
};

原因是component.linkAll()无法猜测空状态的可能属性。它们必须被初始化。另外,出于多种其他原因,这也是一个好习惯。

也许我应该将其添加到文档中(我是valuelink软件包的作者)。当然,它并不被弃用。这是“功能完整”:)。