如何在`this.state`对象中获取状态值

时间:2019-04-14 03:50:26

标签: javascript reactjs object state

我有一个有状态的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甚至有可能吗?有没有解决的办法?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

numbers_rows是常数还是可以更改?

如果它是一个常量,请考虑将其移出您的状态,因为从技术上讲,它不是应用程序的状态。

也许做类似的事情

NUMBERS_ROWS = 30;组件上方

const Contracts或将该变量保存在常量文件中,然后将该变量导入组件中。

如果可以更改。

您可以将数据的初始状态设置为空数组,然后根据情况有两种选择。

如果props.data是从API提取的值,并且如果仍在进行提取,则该值可以为null或空数组,请使用componentDidUpdate根据以下内容更新您的data状态取值后,将值设为props.data

如果您非常确定props.data不会是空/空数组,并且在装入组件之前已经填充了该数组,则可以使用componentDidMount来设置data状态,基本上,您只是根据情况将排序和切片的逻辑移动到componentDidMountcomponentDidUpdate

答案 1 :(得分:0)

也许您可以使用默认的数字行变量来首先初始化组件的状态。之后,当您需要更改key not in (27, 10)变量时,只需调用number_rows函数并使用新的alterNumberRows值计算data,然后使用新计算的number_rowsnumber_rows

data