Я новичок в React Native.В моем приложении одна и та же функция проверки наличия пользователя в базе данных используется в 3 разных файлах.
checkUserExists = (userId) => {
var that = this;
database.ref('users').child(userId).once('value').then(function(result){
const exists = (result.val() !== null);
if (exists) {
var data = result.val();
that.setState({
username: data.username,
name: data.name
})
}
})
}
Чтобы уменьшить объем кода, я хочу поместить эту функцию в компонент, чтобы она моглабыть повторно использованы.Поэтому я создал новый файл с этой функцией:
export function checkUserExists (userId) {
database.ref('users').child(userId).once('value').then(function(result){
const exists = (result.val() !== null);
if (exists) {
var data = result.val();
setState({
username: data.username,
name: data.name
})
}
})
}
Но это встречается с [Отклонение необработанного обещания: ReferenceError: Невозможно найти переменную: setState]
Как правильно обращаться с этим?Должен ли я использовать Redux?Я не могу найти четкий ответ по ТАК до сих пор.
Обновление: я также пытался
export default class Authentication extends Component {
checkUserExists = (userId) => {
database.ref('users').child(userId).once('value').then(function(result){
const exists = (result.val() !== null);
if (exists) {
var data = result.val();
setState({
username: data.username,
name: data.name
})
}
})
}
}
, и я пытался назвать его как
Authentication.checkUserExists(user.id);
, но получает: TypeError: _authentication.default.checkUserExists isне функция