我有一个有状态的React组件,并且我想访问状态对象内部的状态值,特别是OnClickListener
。
number_rows
我无法让class Contracts extends React.Component{
constructor(props) {
super(props);
this.state = {
number_rows: 30, //starting default
data: props.data
.sort((a, b) => this.high_to_low(a, b, "latestVolume"))
.slice(0, this.state.number_rows)
};
}
render(){
return(
...
)
}
}
export default Contracts;
读取slice()
中设置的行数
示例
this.state.number_rows
我尝试了b={a:'a', c:b.a}
{a: "a", c: "a"}
和state.number_rows
甚至有可能吗?有没有解决的办法?
感谢您的帮助!
答案 0 :(得分:1)
numbers_rows
是常数还是可以更改?
如果它是一个常量,请考虑将其移出您的状态,因为从技术上讲,它不是应用程序的状态。
也许做类似的事情
在NUMBERS_ROWS = 30;
组件上方 const Contracts
或将该变量保存在常量文件中,然后将该变量导入组件中。
如果可以更改。
您可以将数据的初始状态设置为空数组,然后根据情况有两种选择。
如果props.data
是从API提取的值,并且如果仍在进行提取,则该值可以为null或空数组,请使用componentDidUpdate
根据以下内容更新您的data
状态取值后,将值设为props.data
。
如果您非常确定props.data
不会是空/空数组,并且在装入组件之前已经填充了该数组,则可以使用componentDidMount
来设置data
状态,基本上,您只是根据情况将排序和切片的逻辑移动到componentDidMount
或componentDidUpdate
。
答案 1 :(得分:0)
也许您可以使用默认的数字行变量来首先初始化组件的状态。之后,当您需要更改key not in (27, 10)
变量时,只需调用number_rows
函数并使用新的alterNumberRows
值计算data
,然后使用新计算的number_rows
和number_rows
。
data