React类中的变量赋值



如果我想在react组件类中分配一个变量,像这样…

class Something extends React.Component{
constructor(props) {
super(props)
this.someMethod=this.someMetho.bind(this)
****const variable = this.props.something==='this.state.something'?this.props.something:this.props.something.filter(according to some criteria);****
}
someMethod(){
bla bla
}
render(){
***variable***.map((item, index)=>
{return <htmlTag> some stuff dependent on mapping<close/> }
}
}

显然,这不起作用,React将接受这样的赋值作为有效代码,但由于某种原因不允许您访问该变量(看起来如此,至少根据我的控制台(日志)测试)。如果不把它重构成函数,你怎么做这样的事情?变量应该去哪里?有没有更好的方法来做到这一点,再次不写一个函数和使用钩子?星号变量表示我想要做什么,不需要在函数的那一部分,但它需要做的是基于类的内部状态运行一些测试。一种带有三元制的变量赋值,根据类的状态过滤某些内容(在本例中是一个数组)。

我完全意识到我所写的是不好的做法,但细节是无关紧要的。我知道在这种情况下我个人会写些什么,但那不是真正的问题。

如果这对我的问题有任何不清楚的地方,它只是关于在react类中使用变量,它们可以在哪里声明,在哪里不声明,以及我如何做类似于上面的事情。

非常感谢。

constructor函数中声明的变量在render函数中不可用。它们是不同的功能。

如果你想在组件的其他方法中存储数据,那么就把它存储在状态中。

在介绍性教程中有一个例子。

对于React类组件,状态必须保存在this.state中。更多详细信息请参见此链接:https://reactjs.org/docs/state-and-lifecycle.html

最新更新