簡體   English   中英

在reactjs中使用render方法之外的函數

[英]use a function outside render method in reactjs

我有這樣的代碼:

//my_file.js

var React = require('react');
var ReactDom = require('react-dom');
var App = React.createClass({
    getInitialState:function(){
        return {//something};
    },
    myFunction:function(html){
        //some code
    },
    render:function(){
        //some code
        var someVar1, someVar2, someVar3;
        someVar1.map( function(i, j){
            someVar2.campos.map( function(k, j){
                someVar3.campos.map( function(z, k){
                    this.myFunction(something);
                }
            }
        }
        return (
            <div>
                { //something }
            </div>
        );
    }
});
module.exports=App;

my_file.js:16 Uncaught TypeError:this.myFunction不是函數。 我做錯了什么? 我如何在渲染中使用該函數?

問題是,在.map this指的是全局范圍而不是您的組件。 有幾種方法可以解決這個問題

  1. 為每個.map設置this

     someVar1.map( function(i, j){ someVar2.campos.map( function(k, j){ someVar3.campos.map( function(z, k){ this.myFunction(something); }, this); }, this) }, this) 
  2. 存儲this變量

     var self = this; someVar1.map( function(i, j){ someVar2.campos.map( function(k, j){ someVar3.campos.map( function(z, k){ self.myFunction(something); }); }) }) 
  3. 使用箭頭功能

     someVar1.map( (i, j) => { someVar2.campos.map( (k, j) => { someVar3.campos.map( (z, k) => { this.myFunction(something); }); }) }) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM