在React Native中设计具有私有属性的组件类的正确方法是什么

时间:2018-11-23 09:17:01

标签: reactjs react-native

是否有建议的方法来为组件提供私有属性/变量,并在Constructor中更新值并在整个组件中使用这些属性

示例:

export default class Workarea extends React.Component {

  constructor(props) {
    super(props);
    MenuProps = this.props.navigation.getParam('MenuProps', {})
  }
  
  MenuProps= {};
    
  getCurrentForm = () => {
    if(MenuProps.Type == "Type1") {
      this.RenderType1();
    }
    if(MenuProps.Type == "type2") {
      this.RenderType2();
    }
  }
  
  render() {
    return (
      <View>
       {
           this.getCurrentForm()
       }
      </View>
    )
  }
}

这是基于类和属性的方法的正确方法。 还是我应该始终设置值和道具说明,请推荐。

1 个答案:

答案 0 :(得分:0)

我不熟悉ReactNative,但是es6类不支持私有属性。但是,实现它们的方法是只在类外部声明变量,但要在同一文件中声明如下:

    let _somePrivateProperty='hey';


     export default class Workarea extends React.Component {

      constructor(props) {
       super(props);
       MenuProps = this.props.navigation.getParam('MenuProps', {})
      }

    MenuProps= {};

    getCurrentForm = () => {
      if(MenuProps.Type == "Type1") {
        this.RenderType1();
      }
      if(MenuProps.Type == "type2") {
        this.RenderType2();
      }
    }

    render() {
      return (
        <div>
          <p>{_somePrivateProperty}</p>
          <View>
            {
             this.getCurrentForm()
            }
          </View>
        </div

      )
    }
  }

希望这就是您的意思。