ListView 未更新 – ListViewDataSource.js 中的错误

ListView not updating – error in ListViewDataSource.js

我目前正在展示一个使用 React Native 框架的 iOS 应用程序。为了允许用户选择可用的蓝牙 LE 设备,我使用 RefreshableListView(NPM 包:react-native-refreshable-listview)组件,它使用 React 提供的 ListView 组件。当我第二次使用该列表时(我的应用程序具有离线模式),我将其放入一个单独的组件中并在使用属性中传递可用设备。组件在方法componentWillReceiveProps: function(newProperties)中更新,如下所示。

componentWillReceiveProps: function(newProperties)
{
    if (newProperties.devices !== undefined)
    {
        if (newProperties.devices.length > 0)
        {
            alert("length: " + newProperties.devices.length); // the expected result is shown by this statement
            this.setState
            (
                {
                    dataSource: this.state.dataSource.cloneWithRows(newProperties.discoveredDevices)
                }
            );
        }
    }
}

问题是由于以下错误导致列表视图未更新(使用Google Chrome的调试工具捕获):

Uncaught TypeError: Cannot convert undefined or null to object    ListViewDataSource.js:202

为了避免这个错误,我尝试初始化数组,如下所示:

componentDidMount: function()
{
    this.setState
    (
        {
            dataSource: this.state.dataSource.cloneWithRows(new Array())
        }
    );
}

但是,这并没有解决问题。使用静态数据初始化数组(通过方法 componentDidMount 完成)也不能修复错误。

我很感激任何建议。提前致谢!

React Native最新版本(0.5.0 RC 0)解决了这个问题