在React Native中可以接受在此设置变量与调用this.setState()吗?

时间:2016-09-12 14:19:37

标签: reactjs react-native state

了解this.setState()将触发重新渲染组件,如果我有一个视图并且我不需要触发重新渲染,例如一个View,那么设置一个是否可以接受这个变量?这样做是否有任何缺点,因为我只需要在View代码范围内引用该变量值?

例如:

this.adHeight = 100

对战:

this.setState({ adHeight: 100 })

1 个答案:

答案 0 :(得分:1)

您没有提供足够的信息来给您一个确切的答案,所以我会开始猜测。如果addHeight变量不影响您的组件UI,为什么在组件中需要它?该变量是常数还是可以改变?

你可以这样做:

const addHeight = 100;
// or
const addHeight = someConstantFile.addHeight;
// or
const addHeight = someFile.someFunction();

export default MyComponent extends React.Component {
  // use the addHeight somewhere
}

如果该变量不是常量,您也可以将其作为道具传递(但是您说它不会影响您的render函数,因此我想知道该变量的用途是什么)。也许你可以在这里粘贴整个组件。

但无论如何,我会说是的,你可以做你想要的。我建议你使用_思考,例如:this._listener。然后,您可以从this._listenercomponentDidMount(典型示例)访问componentWillUnmount如果您发现自己从render函数访问该变量,则意味着此变量实际上应该是您的组件状态的支柱或部分。