1С реквизитформывзначение: Преобразование данных прикладных объектов в данные формы и обратно – Ваш петербургский программист 1С

Понимание ключевой опоры React

Посмотрите «Использование ключевой опоры при рендеринге списка с помощью React» на egghead.io
(часть Руководства для начинающих по ReactJS).

Поэкспериментируйте с этой формой:

TopicTrainingConsultingQuestion

Тема сообщения

Тело сообщения

В частности, попробуйте изменить тему, затем переключите тему и обратите внимание, что
значение в поле ввода не меняется на более разумный предмет. Даже если
вы набираете что-то вроде «Моей компании требуется обучение», а затем меняете тему
с «Обучение» на «Вопрос» было бы разумнее сбросить
при условии лучшего значения по умолчанию.

Теперь попробуйте этот:

TopicTrainingConsultingQuestion

Тема сообщения

Тело письма

Теперь все работает как положено. Вот реализация, и я выделю
разница:

 const defaultValuesByTopic = {
  обучение: «Я хотел бы пройти обучение»,
  консультирование: «Мне нужны консультации»,
  вопрос: «У меня есть вопросы»,
}
функция Контакт() {
  const [тема, setTopic] = React. useState('обучение')
  возвращаться (
    <форма>
      
        s, как указано выше, как и для компонентов, которые вы
напиши и выложи. Может быть немного проще понять состояние компонента, поэтому
это угол, с которого мы собираемся подойти к этому.

Представьте, что у вас есть компонент React, который управляет внутренним состоянием. Это состояние
прикрепленный к экземпляру компонента. Вот почему вы можете визуализировать этот компонент
дважды на странице, и они будут работать совершенно независимо. Для нашего
демонстрация, давайте использовать что-то действительно простое:

 функция Счетчик() {
  const [количество, setCount] = React.useState (0)
  const приращение = () => setCount (c => c + 1)
  вернуть 
}
 

Мы могли бы отображать это много раз на странице, и каждый раз был бы полностью
независимый. React будет хранить состояние для каждого отдельного экземпляра. Когда один
компонент удаляется со страницы, это не повлияет на другие. Если вы делаете новый
one, это не влияет на существующие компоненты.

Возможно, вы знаете, что React key prop — это то, что вам нужно надеть на элементы
когда вы сопоставляете массив (иначе React разозлится на вас).

Примечание: Если вы хотите знать, почему это необходимо и что может произойти, если
вы его игнорируете или просто ставите индекс в качестве ключа, смотрите «Use the key prop
при рендеринге списка с
React»

Ключ React prop дает вам возможность управлять экземплярами компонентов. Каждый
когда React визуализирует ваши компоненты, он вызывает ваши функции для получения
новые элементы React, которые он использует для обновления DOM. Если вы вернетесь тем же
типы элементов, он сохраняет эти компоненты/узлы DOM, даже если все реквизиты
измененный.

Чтобы узнать больше об этом, прочитайте Один простой трюк для оптимизации React
re-renders

Я хочу поговорить о звездочке над словом «все» выше.
Исключением является ключ prop. Это позволяет вам вернуть то же самое
тип элемента, но заставить React размонтировать предыдущий экземпляр и смонтировать новый
один. Это означает, что все состояния, существовавшие в компоненте в тот момент,
полностью удален, и компонент «повторно инициализирован» для всех целей и
целей. Для компонентов это означает, что React будет выполнять очистку эффектов (или
componentWillUnmount ), то он запустит инициализаторы состояния (или
конструктор ) и обратные вызовы эффектов (или componentDidMount ).

ПРИМЕЧАНИЕ: очистка эффекта на самом деле происходит после того, как новый компонент был
смонтирован, но до запуска следующего обратного вызова эффекта.

Вот простой пример работы со счетчиком:

 function Counter() {
  console.log('Вызван счетчик')
  const [счетчик, setCount] = React.useState(() => {
    console.log('Инициализатор счетчика useState')
    вернуть 0
  })
  const приращение = () => setCount (c => c + 1)
  React. useEffect(() => {
    console.log('Счетчик обратного вызова useEffect')
    возврат () => {
      console.log('Очистка счетчика useEffect')
    }
  }, [])
  console.log('Счетчик возврата реагирующих элементов')
  вернуть 
}
функция CounterParent() {
  // использование useReducer таким образом в основном гарантирует, что каждый раз, когда вы вызываете
  // setCounterKey, `counterKey` устанавливается на новый объект, который
  // сделать ключ другим, в результате чего React размонтирует предыдущий
  // компонент и монтируем новый.
  const [counterKey, setCounterKey] = React.useReducer(c => c + 1, 0)
  возвращаться (
    <дел>
      
      <Ключ счетчика={counterKey} />
    
) }

Вот что получилось:

Вот аннотированный пример того, что будет зарегистрировано, если я нажму на счетчик
кнопку, затем нажмите reset:

 // установка
Счетчик называется
Инициализатор счетчика useState
Счетчик, возвращающий реагирующие элементы
// теперь он смонтирован
Счетчик обратного вызова useEffect
// нажимаем кнопку счетчика
Счетчик называется
Счетчик, возвращающий реагирующие элементы
// обратите внимание, что инициализатор и обратный вызов эффекта в этот раз не вызываются
// нажимаем кнопку сброса в родительском
// эти следующие журналы происходят для нашего нового экземпляра
Счетчик называется
Инициализатор счетчика useState
Счетчик, возвращающий реагирующие элементы
// очищаем старый экземпляр
Очистка счетчика использования эффекта
// теперь смонтирован новый экземпляр
Счетчик обратного вызова useEffect
 

Опять же, это происходит так же, как и для состояния нативных элементов формы (для
такие вещи, как значение и даже фокус). Ключ реквизит не только для того, чтобы избавиться
той раздражающей ошибки консоли React, когда вы пытаетесь отобразить массив элементов
(все «раздражающие» ошибки от React — это здорово и помогает вам избежать ошибок, поэтому, пожалуйста,
не игнорируйте их). Ключ реквизит также может быть полезным механизмом для
управление экземплярами компонентов и элементов React.

Надеюсь, это было интересно/познавательно. Если вы хотите поиграть с любым из
этот код,
У меня есть codeandbox для этого здесь.
Веселиться!

javascript — Как передать значение реквизита в поле формы в React Native?

спросил

Изменено
5 лет, 6 месяцев назад

Просмотрено
1к раз

у меня есть код этой формы:

 <Форма>
    <Последний элемент с плавающей меткой>
      
       this. setState({электронная почта: текст}) }
       />
    
    <Последний элемент с плавающей меткой>
      
       this.setState({reg_mob_no: text}) }
         />
    
    <Последний элемент отключен с плавающей меткой>
      
      <Ввод отключен onChange={(text) => this.setState({package_select:this.props.package_id}) }
   />
    
    <Последний элемент с плавающей меткой>
      
       this.setState({пароль: текст}) }
         SecureTextEntry={true}/>
    
    <Просмотр поля>
        <Стили блока кнопок={{ backgroundColor:"#FF69B4" }} onPress={this.onRegisterPressed.bind(this)} >
            Отправить
          
    
  
 

я хочу передать значение props в поле формы package_select . this.props.package_id — реквизит, а значение реквизита — целое число.


Опубликовано

в

от

Метки:

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *