In React Native
После ImagePicker (by Expo) вызывается для поиска фотографии в системе, вызывается размонтирование, а затем монтирование, и я не могу используйте setState .
Сообщение об ошибке:
Невозможно вызвать setState (или forceUpdate) для неустановленного компонента. Это не работает, но это указывает на утечку памяти в вашем приложении. Чтобы исправить, отмените все подписки и асинхронные задачи в методе componentWillUnmount. )
Все отлично работает на симуляторе iOS, потому что там нет размонтирования.
Но на физическом Android это то, что я получаю.
Я новичок в React, так что, возможно, это очень просто, но я не мог понять, как это исправить из того, что я прочитал и наблюдал до сих пор.
Я пытался:
Установка функции, которая проверяет состояние isMount, а затем вызывает setState. Но оно всегда размонтировано.
Я не нашел никакой информации в документе ImagePicker на выставке
class SignUpStep2 extends Component {
_pickPhoto = async () => {
let result = await ImagePicker.launchImageLibraryAsync({
allowsEditing: true,
aspect: [4, 3],
})
if (!result.cancelled) {
this.setState({ property: value });
}
}
_askPhotoPermissions = async () => {
const permission = await Permissions.getAsync(Permissions.CAMERA_ROLL)
if (permission.status !== 'granted') {
// Set alert message to ask to go to settings
} else {
this._pickPhoto()
}
}
render() {
return(
<Button onPress={() => this._askPhotoPermissions()}>Change photo</Button>
);
}
}
Я ожидаю успешного использования setState ({}). Я уверен, что это просто, но я не мог выяснить ответ днем.
Заранее спасибо!