На самом деле поля ввода не стали недоступными для редактирования.Жизненный цикл getDerivedStateFromProps вызывается каждый раз, когда изменяется проп или состояние.
Таким образом, всякий раз, когда в поле ввода вносятся какие-либо изменения, изменяются реквизиты или состояние, и жизненный цикл getDerivedStateFromProps вызывается снова.Следовательно, сброс Textfields к начальным значениям.
Выполните условную проверку в getDerivedStateFromProps, чтобы начальные значения устанавливались только при первом вызове жизненного цикла.
Например, попробуйте что-то вроде:
// set initialCount to 0 in constructor
constructor () {
this.state = { initialCount: 0 };
}
static getDerivedStateFromProps(nextProps, prevState){
if (prevState.initialCount === 0) {
return({
initialCount: prevState.initialCount + 1,
email: nextProps.user &&
nextProps.user.hasOwnProperty("emails") ?
nextProps.user.emails[0].address : prevState.email,
password: prevState.password,
name: nextProps.user &&
nextProps.user.hasOwnProperty("name") ? nextProps.user.name
: prevState.name,
mobileNumber: nextProps.user &&
nextProps.user.hasOwnProperty("mobileNumber") ?
nextProps.user.mobileNumber : prevState.mobileNumber,
address: nextProps.user &&
nextProps.user.hasOwnProperty("address") ?
nextProps.user.address.text : prevState.address
});
}
}