#reactjs #react-native
#reactjs #react-native
Вопрос:
Добрый вечер!
Я создаю приложение React, в котором пользователь может перемещаться между различными страницами, такими как логин, регистрация, создание персонажа и т.д. Это приложение предназначено как для Интернета, так и для Android. В веб-приложении это перенаправление выглядит полностью нормально и загружает CharCreate.js файл правильно, приложение Android этого не делает, и я получаю необработанный отказ от обещания.
Я знаю, что мне нужно по-другому маршрутизировать страницу на Android, включая изменение импорта с react-router-dom на react-router-native, но я продолжаю получать это предупреждение. Я не могу продолжить разработку без его удаления.
Вот мой App.js файл:
import React, { useState, useEffect } from "react";
import { Router, Routes, NativeRouter, Route, Redirect, Link } from "react-router-native";
import { render } from "react-dom";
//import Register from "./frontend/Register.js";
import CharCreate from "./frontend/CharCreate.js";
//import QuestForm from "./frontend/components/QuestPage";
import Login from "./frontend/Login.js";
import Auth from "./frontend/auth.js";
import 'localstorage-polyfill';
export default function App() {
const token = localStorage.getItem("token")
console.log(token);
// true == active user (logged in)
const [state, setState] = useState(token !== null amp;amp; token !== "" ? true : false);
// Set user vars to access the Canvas page
function onLogin(active)
{
setState(active);
return <Redirect to="/charCreate"/>
}
// clear all fields on logout
function onLogout(active)
{
setState(active);
return <Redirect to="/" />
}
function getUser(token) {
}
return (
<NativeRouter>
<Routes>
<Route path="/" element={<Login/>}/>
<Route path="/charCreate" element={<CharCreate/>}/>
<Route path="/auth" element={<Auth/>}/>
</Routes>
</NativeRouter>
);
}
И ниже приведена кнопка, которая должна перенаправлять с начального Login.js чтобы CharCreate.js:
<TouchableOpacity onPress = {() => (window.location.href = './charCreate')} style={styles.registerMe}>
Любой совет был бы очень, очень признателен.
Ответ №1:
в react native у нас нет местоположения окна, и оно не определено. вы можете увидеть, что мы имеем в объекте window с помощью
console.log(Object.keys(window))
вместо window.местоположение Я предпочитаю использовать useHistory-хук, подобный этому
, проверьте эту ссылку
useHistory