[英]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
指的是全局范圍而不是您的組件。 有幾種方法可以解決這個問題
為每個.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)
存儲this
變量
var self = this; someVar1.map( function(i, j){ someVar2.campos.map( function(k, j){ someVar3.campos.map( function(z, k){ self.myFunction(something); }); }) })
使用箭頭功能
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.