代码之家  ›  专栏  ›  技术社区  ›  Yanshof

如何访问类成员(不添加到reactjs state)表单contextmenu调用?

  •  -1
  • Yanshof  · 技术社区  · 7 年前

    我定义了扩展react.component的类,并添加了一些成员对象。 我想知道是否有某种方法可以从myContext函数访问myClassMember(具有正确的上下文)?

    我不想通过在州上定义myclassmember来实现这一点。

        class myClass extends React.Component 
    {
          _myClassMember = null;
    
          constructor(props) 
          {
            super(props);
          }
    
          myContext(e) 
          {
            e.preventDefault(); 
    
            // here i want to have access somehow to _myClassMember;
          }
    
    
          // after add the img
          render() 
          {
              _myClassMember = 8;
    
              const itemToRender =(<div>
                  <button onContextMenu={this.myContext}> 
                        "MyButton"
                    </button> 
                </div>);
    
                return itemToRender;
    
          }  
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Chase DeAnda    7 年前

    你应该定义 _myClassMember constructor 把它绑在 this :

    class App extends React.Component {
        constructor(props) {
          super(props);
          this._myClassMember = null;
        }
    
        myContext = e => {
          e.preventDefault();
    
          // Access _myClassMember using this._myClassMember
          console.log(this._myClassMember);
        }
    
    
        // after add the img
        render() {
          this._myClassMember = 8;
    
          const itemToRender = ( 
            <div>
              <button onContextMenu={this.myContext}>"MyButton"</button>  
            </div>);
    
            return itemToRender;
    
          }
        }
        ReactDOM.render( < App / > , document.getElementById('root'));
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
    <div id="root"></div>