React Native не перерисовывает экран при goBack() ⇐ Javascript
React Native не перерисовывает экран при goBack()
Сейчас я разрабатываю мобильное приложение с использованием React Native, и у меня возникла эта проблема. У меня есть два экрана: SiteScreen и FormScreen. Первый отображает информацию о сайте, а второй представляет собой форму для оценки сайта. Поэтому, когда я заполняю форму и отправляю ее в свой API, я обновляю информацию о сайте и хочу, чтобы она обновлялась в SiteScreen, чтобы пользователь мог ее видеть, но это не так. Я могу распечатать его в обновленном FormScreen, но не на другом экране
Я попробовал использовать первую функцию, которая вызывается при нажатии кнопки отправки
const saveChanges = () => { если (Object.keys(selectedValues).length === 0) setHasError (истина); еще { // Код для защиты камней console.log('Изменения сохранены: ', selectedValues); site.nombre = "(Рейтинг)"; Navigation.setParams({сайт: сайт}); навигация.goBack(); } } и мне удалось заставить это работать, сделав это в SiteScreen:
const site =route.params.site; const [, setState] = useState(false); использоватьFocusEffect( React.useCallback(() => { console.log("В фокусе") console.log("Номер на сайте: " + site.nombre) setState(предыдущая => !предыдущая); возврат () => {}; }, []) ); Но это настоящая функция, которую мне нужно использовать для выполнения запроса, и то, что я сделал, не работает с асинхронными функциями, не знаю почему
const saveChangesAsync = async () => { если (Object.keys(selectedValues).length === 0) setHasError (истина); еще { const ответ = ждут sendRating (selectedValues, сайт, пользователь!._id); if (response.success && «newPlace» в ответ) { response.newPlace.nombre = "(Рейтинг)"; console.log("Имя в форме: " + response.newPlace.nombre) Navigation.setParams({сайт: response.newPlace}); setTimeout(() => { навигация.goBack(); }, 100); } еще console.log(ответ.сообщение) } } Пожалуйста, помогите мне. Я слишком долго боролся с этим
Сейчас я разрабатываю мобильное приложение с использованием React Native, и у меня возникла эта проблема. У меня есть два экрана: SiteScreen и FormScreen. Первый отображает информацию о сайте, а второй представляет собой форму для оценки сайта. Поэтому, когда я заполняю форму и отправляю ее в свой API, я обновляю информацию о сайте и хочу, чтобы она обновлялась в SiteScreen, чтобы пользователь мог ее видеть, но это не так. Я могу распечатать его в обновленном FormScreen, но не на другом экране
Я попробовал использовать первую функцию, которая вызывается при нажатии кнопки отправки
const saveChanges = () => { если (Object.keys(selectedValues).length === 0) setHasError (истина); еще { // Код для защиты камней console.log('Изменения сохранены: ', selectedValues); site.nombre = "(Рейтинг)"; Navigation.setParams({сайт: сайт}); навигация.goBack(); } } и мне удалось заставить это работать, сделав это в SiteScreen:
const site =route.params.site; const [, setState] = useState(false); использоватьFocusEffect( React.useCallback(() => { console.log("В фокусе") console.log("Номер на сайте: " + site.nombre) setState(предыдущая => !предыдущая); возврат () => {}; }, []) ); Но это настоящая функция, которую мне нужно использовать для выполнения запроса, и то, что я сделал, не работает с асинхронными функциями, не знаю почему
const saveChangesAsync = async () => { если (Object.keys(selectedValues).length === 0) setHasError (истина); еще { const ответ = ждут sendRating (selectedValues, сайт, пользователь!._id); if (response.success && «newPlace» в ответ) { response.newPlace.nombre = "(Рейтинг)"; console.log("Имя в форме: " + response.newPlace.nombre) Navigation.setParams({сайт: response.newPlace}); setTimeout(() => { навигация.goBack(); }, 100); } еще console.log(ответ.сообщение) } } Пожалуйста, помогите мне. Я слишком долго боролся с этим
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение