我做错了什么?
我正在尝试使用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} />
}
}
答案 0 :(得分:1)
要修复..我需要明确声明状态中的所有字段。
state = {
field1: undefined
};
答案 1 :(得分:0)
显然valueLink已被弃用(很久以前)。使用值而不是onChange。请参阅解释它的this SO link。
答案 2 :(得分:0)
是的,这个答案是正确的:
state = {
field1: undefined
};
原因是component.linkAll()
无法猜测空状态的可能属性。它们必须被初始化。另外,出于多种其他原因,这也是一个好习惯。
也许我应该将其添加到文档中(我是valuelink
软件包的作者)。当然,它并不被弃用。这是“功能完整”:)。