rowHasChanged Undefined不是构造函数

时间:2016-07-19 11:19:10

标签: reactjs react-native

您好我正在创建一个网格,我的班级中有这个构造函数

export class Grid extends Component {
    constructor (props) {
        super(props)
        var ds = new ListView.Datasource({rowHasChanged: (r1, r2) => r1 !== r2})
        this.state = {dataSource: ds.cloneWithRows(this._genRows({}))}
    }
.
.
.
}

当我尝试运行时,我收到以下错误:

  

Undefined不是构造函数(评估'new)   _reactNative.ListView.Datasource({rowHasChanged:function rowHasChanged(r1,r2){returnr1!== r2;}})')

有人能帮我一把吗? 提前谢谢!

2 个答案:

答案 0 :(得分:6)

我认为这只是一个错字。请尝试在此行中使用DataSource代替Datasource

var ds = new ListView.DataSource( ... 

ListView参考:http://facebook.github.io/react-native/releases/0.29/docs/listview.html

答案 1 :(得分:0)

我有类似的事情发生在我身上,我花了一些时间来弄清楚这个错误,所以我会把它写出去,以便其他人可以使用它。

我有什么:

import foo from './foo'

class bar extends Component{
  constructor(props){
    super(props);
    const foo = new foo(); // getting foo is undefined and not a constructor
  }
}

显然在js中,本地赋值在调用构造函数之前会覆盖外部赋值。