#react-native
#react-native
Вопрос:
Я получаю значение из общих настроек, но при попытке сохранить это значение в this.state я получаю указанную выше ошибку. Я хочу получить доступ к бизнес-идентификатору глобально, поэтому сохраняю в this.state. Любая помощь будет оценена. Спасибо.
this.state = {
businessId: ""
};
SharedPreferences.getItem("business_entity_id",function(value){
this.setState({businessId:value}).bind(this);
console.log("val",this.state.businessId);
});
console.log("businessId for shared Preference:", this.state.businessId);
Комментарии:
1. поделитесь своим кодом более четко
2. вы можете использовать функцию со стрелкой (значение)=>{} в обратном вызове вместо функции (значения){}. вы получите глобальное «это» в функции со стрелкой.
3. экспорт класса по умолчанию MainCalendarScreen расширяет React. Компонент { конструктор (реквизит) { супер(реквизит); var SharedPreferences = require(‘реагировать-собственные-общие-предпочтения’); this.state = { bussinessId: «» }; SharedPreferences.GetItem(«business_entity_id», функция (значение){ this.setState({bussinessId:значение}).bind(this); console.log(«val»,this.state. bussinessId); }); console.log(«bussinessId для общих предпочтений:»,this.state.bussinessId); } Мой код
4. можете ли вы отредактировать свой вопрос и добавить туда код? Также почему вы привязываете свой setstate?
5. Как использовать значение вне функции общих предпочтений? Пример: когда я пытаюсь вывести значение в консоли из этой функции, оно показывает неопределенное или пустое
Ответ №1:
Вы можете использовать функцию стрелки () => {} для функции() {}, потому что когда вы используете функцию стрелки, она передаст это в функцию
this.state = {
businessId: ""
};
SharedPreferences.getItem("business_entity_id",(value) => {
this.setState({businessId:value}).bind(this);
console.log("val",this.state.businessId);
});
console.log("businessId for shared Preference:", this.state.businessId);
Комментарии:
1. выводится значение внутри функции, но как использовать значение вне функции общих предпочтений? Пример: когда я пытаюсь напечатать значение в консоли, подобное этому console.log(«BusinessID для общих предпочтений:», this.state.BusinessID); из этой функции он показывает неопределенный или пустой
Ответ №2:
Находится ли ваш код внутри React.Component
? Вы не можете вызвать его за пределами React.Component
.
Это должно сработать:
import React from "react";
import SharedPreferences from "react-native-shared-preferences";
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
businessId: "",
};
}
componentDidMount() {
SharedPreferences.getItem("key", (value) => {
this.setState({ businessId: value });
});
}
render() {
return (
<View></View>
);
}
}