Как использовать props для передачи данных вашим компонентам React
Props - это то, как компоненты получают свои свойства. Начиная с верхнего компонента, каждый дочерний компонент получает свои реквизиты от родителя. В функциональном компоненте свойства - это все, что ему передается, и они доступны путем добавленияprops
в качестве аргумента функции:
const BlogPostExcerpt = props => {
return (
<div>
<h1>{props.title}</h1>
<p>{props.description}</p>
</div>
)
}
В компоненте класса свойства передаются по умолчанию. Ничего особенного добавлять не нужно, они доступны какthis.props
в экземпляре Component.
import React, { Component } from 'react'
class BlogPostExcerpt extends Component {
render() {
return (
<div>
<h1>{this.props.title}</h1>
<p>{this.props.description}</p>
</div>
)
}
}
Передача свойств дочерним компонентам - отличный способ передать значения в вашем приложении. Компонент либо хранит данные (имеет состояние), либо получает данные через свои свойства.
Это усложняется, когда:
- вам нужно получить доступ к состоянию компонента от дочернего элемента, который находится на несколько уровней ниже (все предыдущие дочерние элементы должны действовать как сквозные, даже если им не нужно знать состояние, что усложняет ситуацию)
- вам нужно получить доступ к состоянию компонента из совершенно несвязанного компонента.
Значения по умолчанию для реквизита
Если какое-либо значение не требуется, нам нужно указать для него значение по умолчанию, если оно отсутствует при инициализации компонента.
BlogPostExcerpt.propTypes = {
title: PropTypes.string,
description: PropTypes.string
}
BlogPostExcerpt.defaultProps = {
title: ‘’,
description: ‘’
}
Некоторые инструменты, такие какESLintиметь возможность принудительно определять свойства defaultProps для компонента с некоторыми типами propTypes, которые явно не требуются.
Как передаются реквизиты
При инициализации компонента передайте реквизиты аналогично атрибутам HTML:
const desc = 'A description'
//...
<BlogPostExcerpt title="A blog post" description={desc} />
Мы передали заголовок в виде простой строки (что-то, что мы можемТолькоделать со строками!) и описание как переменную.
Дети
Специальная опора - этоchildren
. Он содержит значение всего, что передается вbody
компонента, например:
<BlogPostExcerpt title="A blog post" description="{desc}">
Something
</BlogPostExcerpt>
В этом случае внутриBlogPostExcerpt
мы могли получить доступ к «Что-то», посмотрев вверхthis.props.children
.
В то время как Props позволяет компоненту получать свойства от своего родителя, например, получать «инструкции» напечатать некоторые данные, состояние позволяет компоненту обрести жизнь самому и быть независимым от окружающей среды.
Скачать мою бесплатнуюСправочник по React
Больше руководств по реакции:
- Пример простого приложения React: получение информации о пользователях GitHub через API
- Создайте простой счетчик с помощью React
- Настройка VS Code для разработки на React
- Как передать реквизиты дочернему компоненту через React Router
- Создайте приложение с Electron и React
- Учебник: создание электронной таблицы с помощью React
- Дорожная карта для изучения React
- Узнайте, как использовать Redux
- Начало работы с JSX
- Стилизованные компоненты
- Введение в Redux Saga
- Введение в React Router
- Введение в React
- Компоненты React
- Виртуальный DOM
- Реагировать на события
- Состояние реакции
- React Props
- Фрагмент реакции
- API контекста React
- React PropTypes
- Концепции React: декларативный
- Реагировать: как показать другой компонент при нажатии
- Как зацикливаться внутри React JSX
- Props vs State в React
- Что лучше: jQuery или React?
- Сколько JavaScript вам нужно знать, чтобы использовать React?
- Введение в Гэтсби
- Как сослаться на элемент DOM в React
- Однонаправленный поток данных в React
- Реагировать на компоненты более высокого порядка
- Реагировать на события жизненного цикла
- Концепция React: неизменность
- Концепция React: чистота
- Введение в React Hooks
- Введение в приложение create-react-app
- Концепция React: композиция
- React: презентационные и контейнерные компоненты
- Разделение кода в React
- Рендеринг на стороне сервера с помощью React
- Как установить React
- CSS в React
- Использование SASS в React
- Обработка форм в React
- React StrictMode
- Реагировать на порталы
- React Render Props
- Тестирование компонентов React
- Как передать параметр обработчикам событий в React
- Как обрабатывать ошибки в React
- Как вернуть несколько элементов в JSX
- Условный рендеринг в React
- React, как передать props дочерним компонентам
- Как получить значение элемента ввода в React
- Как использовать хук useState React
- Как использовать хук useCallback React
- Как использовать хук useEffect React
- Как использовать хук useMemo React
- Как использовать хук useRef React
- Как использовать хук useContext React
- Как использовать хук useReducer React
- Как подключить приложение React к бэкэнду в том же источнике
- Учебное пособие по маршрутизатору Reach Router
- Как использовать инструменты разработчика React
- Как научиться React
- Как отлаживать приложение React
- Как отрендерить HTML в React
- Как исправить ошибку `dangerousSetInnerHTML` не соответствовало в React
- Как я исправил проблему с состоянием формы входа в React и автозаполнением браузера
- Как настроить HTTPS в приложении React на локальном хосте
- Как исправить ошибку "не удается обновить компонент при рендеринге другого компонента" в React
- Могу ли я использовать перехватчики React внутри условного оператора?
- Использование useState с объектом: как обновить
- Как перемещать блоки кода с помощью React и Tailwind
- React, сфокусируйте элемент в React при добавлении в DOM
- Реагировать, редактировать текст по двойному щелчку