Получение сообщения об ошибке TypeError undefined не является объектом - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь отобразить данные в Listview.Во-первых, я фильтрую данные (файл JSON) на основе выбора, который пользователь сделал на предыдущем экране.Я передаю параметр на следующий экран, говоря:

this.props.navigation.state.params.JSON_ListView_Clicked_Item)

Основываясь на вышеупомянутом параметре, я сделал ListView.DataSource внутри функции рендеринга.Единственная причина, я попытался сделать ListView.DatSource внутри функции рендеринга, потому что, насколько я понимаю, это единственное место, где я могу прочитать значение параметра.Когда я пытался отобразить свой listView, я получаю сообщение об ошибке:

TypeError undefined не является объектом.Ниже приведен снимок экрана:

enter image description here

Ниже приведен мой код:

import React, { Component } from 'react';

import { StyleSheet, Text, View, ListView, ActivityIndicator, TextInput } from 'react-native';

import ServiceDetails from '../reducers/ServiceDetails';


class ServiceListDetails extends Component
{




  static navigationOptions =
  {
     title: 'SecondActivity',
  };




ListViewItemSeparator = () => {
  return (
    <View
      style={{
        height: .5,
        width: "100%",
        backgroundColor: "#000",
      }}
    />
  );
}


render()
  {


      var x =   this.props.navigation.state.params.JSON_ListView_Clicked_Item ;
      var newList = ServiceDetails.filter(obj => obj.fk === this.props.navigation.state.params.JSON_ListView_Clicked_Item)

      let ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
      this.setState({
          dataSource: ds.cloneWithRows(newList)

      }
    );


    return(
      <View style={styles.MainContainer}>
             <ListView

                dataSource={this.dataSource}
                renderSeparator= {this.ListViewItemSeparator}
                renderRow={(rowData) => <Text>{rowData}</Text>}
/>

      </View>
    );

  }
}

Ниже приведен файл JSON:

[

    {
       "id":"1",
       "fk": "1",
       "addr": "TestAddress1",
       "phone": "(888)889-9999",
       "LatL":"33.234567",
       "Long2":"117.284725",
       "Online": "x"
    },

    {
        "id":"2",
        "fk": "1",
        "addr": "TestAddress1",
        "phone": "(999)-999-9999",
        "LatL":"33.971110",
        "Long2":"117.31111",
        "Online": ""
     },
]

1 Ответ

0 голосов
/ 05 июня 2018

Вы ошиблись в определении вашего файла JSON.В последнем объекте в массиве "," не требуется, это недопустимый формат JSON, поэтому

[

    {
        "id": "1",
        "fk": "1",
        "addr": "TestAddress1",
        "phone": "(888)889-9999",
        "LatL": "33.234567",
        "Long2": "117.284725",
        "Online": "x"
    },{
        "id": "2",
        "fk": "1",
        "addr": "TestAddress1",
        "phone": "(999)-999-9999",
        "LatL": "33.971110",
        "Long2": "117.31111",
        "Online": "y"
    }
]
...