在 React 构造函数中访问 props
Accessing props in React constructor
我在 child class 中尝试访问 parent 的道具值时遇到问题。
我正在尝试用 parent 的道具初始化 child 道具。
但是下面的代码显示了 value.
的空字符串
export default class Child extends React.Component {
constructor(props) {
super(props);
this.state = { value: props.value };
}
...
在其他class中我称这个Child如下:
const issue = this.state.issue;
...
<Child value={issue.number} />
...
我在构建 Child class 之前检查了数字值(它向我显示了正确的值),而在构建时,该值变为空..
为了测试,我使用了原始数值,并且有效。
似乎 link 到 issue.number 在构造 Child 时断开连接。
有线索吗?
啊,我刚弄明白
与生命周期有关
我渲染 Child 时没有加载数字值。
所以,我需要弄清楚如何根据我的意图更新 Child 中的数字。
这很容易发生。例如,issue.number
在 AJAX 重新渲染后变成了数字。在这种情况下,您必须遵循(在您的父组件中):
render() {
const issue = this.state.issue
if (issue.number) {
return <Child value={issue.number} />
}
}
我在 child class 中尝试访问 parent 的道具值时遇到问题。
我正在尝试用 parent 的道具初始化 child 道具。
但是下面的代码显示了 value.
的空字符串export default class Child extends React.Component {
constructor(props) {
super(props);
this.state = { value: props.value };
}
...
在其他class中我称这个Child如下:
const issue = this.state.issue;
...
<Child value={issue.number} />
...
我在构建 Child class 之前检查了数字值(它向我显示了正确的值),而在构建时,该值变为空..
为了测试,我使用了原始数值,并且有效。
似乎 link 到 issue.number 在构造 Child 时断开连接。
有线索吗?
啊,我刚弄明白
与生命周期有关
我渲染 Child 时没有加载数字值。
所以,我需要弄清楚如何根据我的意图更新 Child 中的数字。
这很容易发生。例如,issue.number
在 AJAX 重新渲染后变成了数字。在这种情况下,您必须遵循(在您的父组件中):
render() {
const issue = this.state.issue
if (issue.number) {
return <Child value={issue.number} />
}
}