Переключаться между входом в регистр и домом реагировать через троичного оператора

Я пытаюсь переключаться между входом в систему, регистрацией и формой домашней страницы, используя троичный оператор. Но, когда я компилирую, появляется ошибка 'this.state.route === signIn' это зарезервированное ключевое слово. Я знаю, что такое зарезервированное ключевое слово, но я не могу понять, почему его присваивают вместо проверки условия, может ли кто-нибудь помочь исправить мой код?

<Navigation onRouteChange={this.onRouteChange}/> /*route change for sign out button*/
    { this.state.route === 'home'/*displays homescreen*/
        ?  <div>
            <Logo />
               <Rank />
                 <ImageLinkForm 
                 onInputChange={this.onInputChange} 
                 onSubmit={this.onSubmit}
                 />
                     <FaceRecognition box={this.state.box} 
                       imageUrl=  {this.state.imageUrl} />  
                      </div>
        :{ 
            this.state.route === 'signIn'/*shows error that this is a reserved keyword*/
            ? <SignIn onRouteChange={this.onRouteChange} />
            :<Register onRouteChange={this.onRouteChange} />
        }
   }

1 ответ

Решение

Кажется, после двоеточия есть дополнительная фигурная скобка. Также попробуйте разделить объекты, используя круглые скобки для удобства чтения. Попробуй это:

   <Navigation onRouteChange={this.onRouteChange} />
     {this.state.route === 'home' ? (
       <div>
         <Logo />
         <Rank />
         <ImageLinkForm 
           onInputChange={this.onInputChange} 
           onSubmit={this.onSubmit}
         />
         <FaceRecognition box={this.state.box} imageUrl={this.state.imageUrl} />  
       </div>
     ) : (
       this.state.route === 'signIn
         ? <SignIn onRouteChange={this.onRouteChange} />
         : <Register onRouteChange={this.onRouteChange} />
     )}
Другие вопросы по тегам