undefined не является объектом (оценивается как this.refs.loaderRef.hide) - PullRequest
0 голосов
/ 29 августа 2018

вот мой магазин класс
.........
импортировать Loade из ./utils/Loader; Экспорт класса хранилища по умолчанию расширяет Компонент {

.................
render() {

        return (
           <View style={{ flex: 1, backgroundColor: "white" }}>
             <Loader ref={"loaderRef"}/>
    ...........................

когда я звоню this.refs.loaderRef.hide(); из класса моего магазина

получил такую ​​ошибку undefined не является объектом (оценивается как this.refs.loaderRef.hide)

Я новичок в реакции на родную, кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Это просто означает, что loaderRef равно нулю, проверьте, правильно ли вы инициализируете loaderRef.

Также убедитесь, что this вернет вам текущий контекст компонента при вызове метода жизненного цикла, например, в render () / componentWillMount (). Но если вы вызовете this из вашего метода, он вернет текущий экземпляр метода.

Если это проблема, вы можете создать переменную с глобальным именем _this и инициализировать ее внутри render() или constructor, как _this = this;. Тогда используйте это как _this.refs.loaderRef.hide();

Например

var _this;
export default class ScreenMyProfile extends Component {
    constructor(props) {
     super(props);
     _this = this;
    }
}
0 голосов
/ 29 августа 2018

Объем его выпуска.

объявить this с _this.

1007 * ех *

let _this = this; //before api call

затем используйте

_this.refs.loaderRef.hide
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...