Как визуализировать на основе условия в Typescript?

#reactjs #typescript

#reactjs #typescript

Вопрос:

Допустим, у нас есть компонент со следующим определением:

 export const MentForm: React.FC<IProps> = (props: IProps) => {
 

Это возвращает a div с загрузкой HTML, некоторые из которых следующие:

     <div className="form">
        <MentFormButton {...fProps} />
        <FlyComp
          user={props.user}
          onClick={props.onShowFly(props.user)}
        />
        {showFlyForm (
          <FlyForm
            onFlyed={() => {
              if (props.onFlyClicked) {
                props.onFlyClicked(flies)
              }
              setShowFlyForm(false)
            }}
            onFlyFail={() => {
              setShowFlyForm(false)
            }}
            user={flies}
          />
        )}
    </div>
 

Теперь, когда мы нажимаем кнопку, запускается onShowFly

У нас есть еще один файл TSX, который внутри Test функционального компонента возвращает значение a <div> и имеет следующее:

       <MentForm
        user={new User}
        onCancelClick={() => {
          if (props.user) {
            wait()
          }
        }}
        onShowFly={() => {// HERE //}}
      />
 

Там, где я написал «ЗДЕСЬ», я хочу, чтобы в MentForm активируемом компоненте можно было использовать фигурные скобки…. но я не знаю, как это сделать….

Ответ №1:

Внутри компонента, который имеет ваш showFlyForm , вы можете использовать useEffect для запуска функции при каждом изменении состояния, а затем просто проверять showFlyForm === true или любую другую логику, которую вы используете для проверки отображения формы.

Пример:

 useEffect(() => {
  showFlyForm amp;amp; [your HERE function]
}, [showFlyForm])
 

Комментарии:

1. Я получаю Line 51:5: Expected an assignment or function call and instead saw an expression

2. Я как супер супер нуб…. На другой странице, как я могу проверить showFlyForm , находится ли она вне области видимости и на другой странице?

3. т.е. Что также вошло onShowFly бы?