Ожидаемое выражение с const в компоненте React JS

#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 .