# #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 и иметь возможность изменять его через состояние