Reactjs 我们可以在自定义函数中访问传递给组件的道具吗
这听起来可能很傻,但我找不到这方面的指南 我要做的是在parent中更改名为Reactjs 我们可以在自定义函数中访问传递给组件的道具吗,reactjs,Reactjs,这听起来可能很傻,但我找不到这方面的指南 我要做的是在parent中更改名为update的变量 在父DOM中执行以下操作: <Child update={this.state.update} /> 在子级中,我不想在呈现和返回之间拾取它(使用const{update}=this.props)并且只能在DOM中使用它,而是想在构造函数和呈现之间的部分拾取它,并在那里的函数中使用它。React有一个在组件上调用的函数生命周期: 启动组件时,您可以使用componentDidMou
update
的变量
在父DOM中执行以下操作:
<Child update={this.state.update} />
在子级中,我不想在呈现和返回之间拾取它(使用
const{update}=this.props
)并且只能在DOM中使用它,而是想在构造函数和呈现之间的部分拾取它,并在那里的函数中使用它。React有一个在组件上调用的函数生命周期:
启动组件时,您可以使用componentDidMount()
如果要根据道具更改更改状态,请使用:componentWillReceiveProps()
否则,如果您希望该函数的结果用作视图中的数据(但只是被操纵)。然后生成一个单独的函数,也称为:computed函数的computed属性。(因为结果是基于当前状态/道具计算的)。React将确保您不会重新渲染/计算不必要的内容。您可以在组件中的任何位置访问组件的
道具,无论是构造函数、生命周期函数、渲染还是自定义函数。
您需要知道的唯一一件事是,构造函数、生命周期方法和渲染函数
已经将绑定到React组件的上下文,但是对于自定义函数
,您需要自己添加绑定。绑定可以在构造函数中完成,也可以通过将函数声明为箭头函数来完成
检查以下关于为什么需要绑定自定义函数的答案:
为了你的案子
<Child update={this.state.update} />
我试图在组件中使用它,当我尝试控制台时,它将接收道具(NewProps)
。从NewProps.update
或props.update
未捕获(承诺中)记录它TypeError:无法读取未定义的
的属性“update”这是什么。状态
在子
的构造函数中执行什么操作?无论如何,我必须确保从声明中排除另一个函数,这就是为什么如果构造函数只执行调用超级
,您可以完全删除该构造函数的原因。我正在尝试在中使用它component将在我尝试控制台时接收props(NewProps)
从NewProps.update
或props.update
@tatsu的属性“update”这很奇怪,我想知道你的代码是什么样子。这是不正常的。当然,你也应该使用this.props.update
,因为我也尝试从newProps实例化一个函数,尽管它不是从那里来的。
class Child extends React.Component {
componentDidMount() {
const {update} = this.update || {};
console.log(update);
this.somefunc();
}
somefunc = () = {
const {update} = this.update || {}; //After function is binded, you can do the same thing here too
console.log(update);
}
}