React Native - Exception '- [NSNull length]: нераспознанный селектор, отправленный экземпляру 0x1e6c059b0', был выдан при вызове multiSet on - PullRequest
0 голосов
/ 30 ноября 2018

Я получаю эту ошибку через несколько секунд после загрузки приложения (но не всегда иногда после нескольких минут или нескольких загрузок).Мне нужно решить эту проблему.
, если требуются дополнительные детали и / или редактирование - скажите, пожалуйста, и я их сделаю.

Исключение '- [Длина NSNull]: нераспознанный селектор отправлен на экземпляр 0x1e6c059b0'был брошен при вызове multiSet для целевого AsyncLocalStorage с параметрами ((("@ Ye-Music: songs", "")), 483)

Screenshot of the error


Функция с AsyncStorage:

allSongs = () => {
    console.log('hello function!');
    fetch(URL + "/SongsList", {
      body: null,  //// sending null because its a view from SQL db
      method: "POST",
      headers: {
        Accept: 'application/json',
        "Content-type": "application/json; charset=UTF-8"
      }
    })
      .then(res => { return res.json()})
      .then((songsResult) => {
        AsyncStorage.setItem("@Ye-Music:songs", songsResult.d);
      })
      .catch(err => {
        console.error(err);
      });
  };


package.json

"dependencies": {
    "@expo/samples": "2.1.1",
    "expo": "29.0.0",
    "react": "16.3.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-29.0.0.tar.gz",
    "react-native-elements": "^0.19.1",
    "react-native-material-cards": "^1.0.9",
    "react-native-music-control": "^0.7.3",
    "react-native-music-player-service": "^0.1.4-beta",
    "react-native-search-header": "^0.3.0",
    "react-native-sound": "^0.10.9",
    "react-native-track-player": "^0.2.5",
    "react-navigation": "^2.9.3"
},

Ответы [ 2 ]

0 голосов
/ 17 августа 2019

При вызове AsyncStorage значение должно быть определено.Если это не так, вы получите ошибку, с которой столкнулись.

Логика обработки ошибок (для неопределенного случая), вероятно, лучший путь.

if(songsResult && songsResult.d) {
   AsyncStorage.setItem("@Ye-Music:songs", songsResult.d);
} else {
   // handle error case here
}
0 голосов
/ 30 ноября 2018

Убедитесь, что songsResult.d не является неопределенным и является строкой длиной> 0!

...