Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在react中映射数组时单击handleClick_Javascript_Reactjs - Fatal编程技术网

Javascript 在react中映射数组时单击handleClick

Javascript 在react中映射数组时单击handleClick,javascript,reactjs,Javascript,Reactjs,我试图通过一个数组进行映射,并创建将更新状态的链接。当我在数组中映射并创建链接时: TypeError:无法读取未定义的属性“handleClick” var FilterList=React.createClass({ handleClick:函数(e,list){ this.props.callbackFromParent(列表); this.setState({showing:list}); }, render:function(){ 如果(this.props.sdata){ var季

我试图通过一个数组进行映射,并创建将更新状态的链接。当我在数组中映射并创建链接时:

TypeError:无法读取未定义的属性“handleClick”

var FilterList=React.createClass({
handleClick:函数(e,list){
this.props.callbackFromParent(列表);
this.setState({showing:list});
},
render:function(){
如果(this.props.sdata){
var季节=“”;
seasons=this.props.sdata.seasons.map(函数(季节,i){
如果(i<30){
var playkey=seasure.mediaId;
变量名称=季节。季节;
返回(
  • ); }否则{ 返回(); } }); 返回(
      {季节}
    ); }否则{ 返回(
    ); } } });
    导出默认过滤器列表您还没有将{this}绑定到
    this.props.sdata.Seasons.map(()=>{})

    应该是:

    render: function() {
      if(this.props.sdata ){
        var seasons ='';
        seasons = this.props.sdata.Seasons.map( (season, i) => {
          //...
        });
      } else {
        //...
      }
      //...
    }
    

    如果我正确理解了您的问题,您需要将其绑定到事件处理程序:

    ...
    onClick={this.handleClick.bind(this)}
    ...
    

    问题是“this”关键字的值取决于调用函数的方式。 “this”在“map()”中的匿名函数内部调用。所以“这个”将是未定义的

    解决方案:

  • Bind()“this”到匿名函数
  • this.props.sdata.seasures.map(函数(季节,i){
    //……诸如此类
    }.约束(这个)可能重复的