在React类中声明和重用变量?

时间:2018-04-21 04:09:53

标签: javascript reactjs

使用React中的纯函数,您可以轻松地创建任何其他嵌套函数可重用的变量:

const myComponent = props => {
  const {something} = props.nested;

  const nestedFunction = () => {
    if (something === "value") return true
  }

  const otherNestedFunction = () => {
    console.log(otherNestedFunction)
  }

  return (
    // markup
  )
}

你能用React类做类似的事情吗?目前我不得不重复创建变量。

class myComponent extends React.Component() {

  nestedFunction() {
    const {something} = props.nested;
    if (something === "value") return true
  }

  otherNestedFunction() {
    const {something} = props.nested;
    console.log(otherNestedFunction)
  }

  render(){
    return (
      // markup
    )
  }
}

1 个答案:

答案 0 :(得分:2)

要在ES6类的函数之间共享变量,请使用成员变量。 React提供道具作为成员变量,您可以使用this.props访问:

class myComponent extends React.Component() {

  nestedFunction() {
    if (this.props.nested === "value") return true
  }

  otherNestedFunction() {
    console.log(this.props.nested)
  }

  render(){
    return (
      // markup
    )
  }
}

请注意,您不应该分配或以其他方式获得任何道具的价值。相反,使用带this.setState()的状态来更新内部组件状态并触发生命周期事件以更新子组件。