#javascript #reactjs #components
#javascript #reactjs #Компоненты
Вопрос:
Не могли бы вы, пожалуйста, помочь мне с этим?
Что я хочу сделать, так это проверить, зарегистрирован ли пользователь. Если он зарегистрирован, он должен показывать домашний URL, а если он не зарегистрирован, он должен показывать URL регистрации.
Для этого я вижу и проверяю сохраненные данные (IsRegistered), если они равны нулю, не зарегистрированы и должны показывать URL-адрес /register . Но это не работает.
В следующей строке у меня ошибка
const [isReg, setIsReg] = useState(false);
И это выдает мне эту ошибку:
Ожидаемое выражение.ts(1109)
const App: React.FC = () => (
const [isReg, setIsReg] = useState<boolean>(false);
if(getItem("isRegistered")==null){
console.log(getItem("isRegistered"));
useState(true);
}
else{
useState(false);
}
<IonApp>
<IonReactRouter>
<IonSplitPane contentId="main" when="(min-width: 4096px)">
<Menu />
<IonRouterOutlet id="main">
<Route path="/" render={() => isReg ? {Home} : {Registro}} />
<Route path="/Favorites" component={Favoritos} exact={true}></Route>
</IonRouterOutlet>
</IonSplitPane>
</IonReactRouter>
</IonApp>
);
Комментарии:
1. Вам нужно использовать setIsReg(true) или false в зависимости от логики и обернуть условие внутри ловушки React useEffect.
Ответ №1:
это должно быть
useEffect(() => {
if(getItem("isRegistered")==null){
console.log(getItem("isRegistered"));
setIsReg(true);
}
else{
setIsReg(false);
}
}, [])
Комментарии:
1. спасибо, но все же при const я получаю: SyntaxError: /home/julian/Documentos/ServicesApp/src/App.tsx: неожиданный токен (38:2)
2. какую константу вы имеете в виду? Какая именно строка в коде?
3. вторая строка: const [isReg, setIsReg] = useState(false);
4. можете ли вы удалить часть <boolean> и посмотреть, работает ли она? Вам не нужно определять тип, если ваше начальное состояние каким-либо образом относится к этому типу.
5. Я знаю почему, ваша функция приложения не заключена в фигурные скобки {}. Оно заключено в обычные скобки (); И оберните часть jsx внутри оператора return .