как установить значение по умолчанию для ввода из бд в React

# #javascript #html #reactjs #firebase #google-cloud-firestore

Вопрос:

У меня есть ввод типа checkout, и я хочу использовать firestore, чтобы получить значение по умолчанию, а затем перевести это значение в состояние и иметь возможность изменить его и обновить магазин. вот как я думал об этом сейчас.

 [visible,setVisible] = useState(false)
const data = commingFromFirebase();
return(
  <div>
   {
     data.map(el => <input type="checkbox" defaultValue={el.visible} value={visible} 
     onChange={e => setVisible(!visible)}/>
   }

  </div>
)
 

Ответ №1:

defaultValue не может использоваться с контролируемым компонентом, т. е. с тем, который value контролируется реквизитами или состоянием.

defaultValue используется только на неконтролируемых компонентах

Поскольку ваш ввод имеет управляемый тип — изменение реквизита или состояния изменит состояние компонента — вы не можете его использовать defaultValue .

Примечание: В вашем случае вы используете флажок, поэтому реквизиты checked (эквивалентны value ) и defaultChecked (эквивалентны defaultValue ), как указано в другом ответе.

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

1. тай, для объяснения значения по умолчанию Адам

Ответ №2:

Вы можете использовать функцию, которая возвращает логическое значение и передает его в флажок в качестве проверяемого параметра. Таким образом, он будет помечен, если возвращает значение true, и не помечен, если значение false.

Должно быть что-то вроде этого:

 <input type="checkbox" checked={isChecked}
 

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

1. да, но я хочу, чтобы я мог установить значение по умолчанию в firestore и иметь возможность изменять его через состояние