Почему значение свойства объекта приставки в хранилище избыточно из «9» вместо img url? - PullRequest
0 голосов
/ 20 марта 2020

Когда экран загружается в моем приложении, работающем на нативном уровне, я использую URL-адрес из избыточного хранилища, заполняемый операцией чтения из хранилища (изображение, хранящееся в хранилище firebase) в качестве источников для компонента изображения. Если я создаю исходную опору изображения, например source={{ui:this.props.someURL}}, я получаю

TypeError: NSNull cannot be converted to NSString

Хорошо, я знаю, что это известная проблема, связанная с исходными реквизитами изображения. Я пытаюсь исправить это с помощью:

source={{ 
  uri: this.props.profileImg == null ?
  require('../assets/img/white-user.png') : 
  this.props.profileImg
}}

, тогда я получаю сообщение об ошибке из заголовка вопроса: JSON value '9' of type NSNumber cannot be converted to NSString Если я полностью удаляю рассматриваемый компонент изображения, ошибки не будет.

зарегистрировано значение this.props.someURL внутри конструктора = null

зарегистрированное значение this.props.someURL внутри componentDidMount() = null

Как и ожидалось, поскольку значения заполняются обещаниями. Так почему же ошибка JSON value of '9'? это только в iOS

1 Ответ

1 голос
/ 20 марта 2020

Вы можете заменить свои реквизиты

От

source={{ 
    uri: this.props.profileImg == null ?
    require('../assets/img/white-user.png') : 
    this.props.profileImg
}}

До

source={
    this.props.profileImg == null ?
    require('../assets/img/white-user.png') : {
        uri:this.props.profileImg
    } 
}
...