Реагировать Учебник

Реагировать Главная Реагировать Введение Реагировать Начать Реагировать ES6 Реагировать на визуализацию HTML Реагировать JSX Реагировать Компоненты Реагировать на класс Реагировать на реквизиты Реагировать на события Реагировать на условия Реагировать списки Реагировать на формы Реактивный маршрутизатор Реагировать на заметку Реагировать на стили CSS Реагировать на стиль Sass

Реагировать на крючки

Что такое крючок? использование состояния использованиеЭффект использованиеконтекста useRef использованиередьюсер использоватьОбратный звонок useMemo Пользовательские крючки

Упражнения по реагированию

Ответная викторина Упражнения по реагированию Сертификат реакции

Реагировать на условный рендеринг


В React вы можете условно визуализировать компоненты.

Есть несколько способов сделать это.


if Заявление

Мы можем использовать ifоператор JavaScript, чтобы решить, какой компонент отображать.

Пример:

Мы будем использовать эти два компонента:

function MissedGoal() {
  return <h1>MISSED!</h1>;
}

function MadeGoal() {
  return <h1>Goal!</h1>;
}

Пример:

Теперь мы создадим еще один компонент, который выбирает, какой компонент отображать на основе условия:

function Goal(props) {
  const isGoal = props.isGoal;
  if (isGoal) {
    return <MadeGoal/>;
  }
  return <MissedGoal/>;
}

ReactDOM.render(
  <Goal isGoal={false} />,
  document.getElementById('root')
);

Попробуйте изменить isGoalатрибут на true:

Пример:

ReactDOM.render(
  <Goal isGoal={true} />,
  document.getElementById('root')
);


w3schools CERTIFIED . 2022

Получите сертификат!

Завершите модули React, выполните упражнения, сдайте экзамен и получите сертификат w3schools!!

ЗАПИСАТЬСЯ НА 95 $

Логический &&оператор

Другой способ условного рендеринга компонента React — использование &&оператора.

Пример:

Мы можем встраивать выражения JavaScript в JSX с помощью фигурных скобок:

function Garage(props) {
  const cars = props.cars;
  return (
    <>
      <h1>Garage</h1>
      {cars.length > 0 &&
        <h2>
          You have {cars.length} cars in your garage.
        </h2>
      }
    </>
  );
}

const cars = ['Ford', 'BMW', 'Audi'];
ReactDOM.render(
  <Garage cars={cars} />,
  document.getElementById('root')
);

Если cars.length равно true, выражение после &&будет отображаться.

Попробуйте очистить carsмассив:

Пример:

const cars = [];
ReactDOM.render(
  <Garage cars={cars} />,
  document.getElementById('root')
);


Тернарный оператор

Другой способ условного рендеринга элементов — использование тернарного оператора.

condition ? true : false

Вернемся к примеру с целью.

Пример:

Вернуть MadeGoalкомпонент, если isGoalесть true, иначе вернуть MissedGoalкомпонент:

function Goal(props) {
  const isGoal = props.isGoal;
  return (
    <>
      { isGoal ? <MadeGoal/> : <MissedGoal/> }
    </>
  );
}

ReactDOM.render(
  <Goal isGoal={false} />,
  document.getElementById('root')
);

Чтобы узнать больше, см . раздел тернарных операторов .


Проверьте себя с помощью упражнений

Упражнение:

Используйте правильный логический оператор для завершения следующего компонента.

function App({isLoggedIn}) {
  return (
    <>
      <h1>My Application</h1>
      {isLoggedIn  <Profile /> }
    </>
  );
}

ReactDOM.render(<App />, document.getElementById('root'));