#reactjs #redux #initialization #redux-form
Вопрос:
В моем приложении React (версия 17.0.2) я пытаюсь в своем функциональном компоненте инициализировать свою Redux-форму (версия 8.3.7) значениями из моего хранилища Redux (версия 4.1.1).
Вот упрощенная версия моего кода, в которой я извлекаю user
объект из своего хранилища Redux ( user
содержит fullName
поле, содержащее полное имя пользователя).:
import React from 'react';
import { connect } from 'react-redux';
import { Field, reduxForm } from 'redux-form'
let Name = ({handleSubmit}) => {
return (
<form onSubmit={handleSubmit}>
<label>Full Name</label>
<Field name="fullName" component="input" type="text" placeholder="Please enter your full name..." />
</form>
);
};
Name = reduxForm({
form: 'nameForm',
enableReinitialize: true
})(Name);
const mapStateToProps = state => {
return {
initialValues: state.user
};
};
export default connect(mapStateToProps)(Name);
Код действительно работает, поскольку он инициализирует мое поле ввода полным именем пользователя, но я получаю несколько ошибок, таких как:
Warning: Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.
Move code with side effects to componentDidMount, and set initial state in the constructor.
Please update the following components: Form(Name)
появляется в моей консоли.
Глядя в Интернете, кажется, что я сделал это так, как было рекомендовано, и я не могу понять, что я должен делать по-другому / возможно, использовать совершенно другую библиотеку.
Как правильно это сделать / что я должен изменить, чтобы удалить эти предупреждения (надеюсь, не прибегая к изменению исходного кода для Redux-формы, на что указывают некоторые ответы в Интернете)?
Комментарии:
1. github.com/redux-form/redux-form/issues/4721 — Последний комментарий здесь касается переписывания «небезопасных» методов. Поскольку это не ваш код, и они, похоже, знают об этом, я бы просто проигнорировал его или внес свой вклад в репо самостоятельно, чтобы решить проблемы.
2. Спасибо, @BrianThompson, я боялся, что единственным решением было то, что я просто ТАК новичок в React / Redux, я еще не чувствую себя комфортно, меняя исходный код. Я думаю, что игнорировать это-лучший курс действий на данный момент. Если у вас нет других идей о том, как я могу сохранить инициализированные / обновленные значения моей формы??
3. Предупреждение-это просто предупреждение, предупреждение. Это не должно влиять на то, как работает ваш код. Тем не менее, главная страница документов формы редактирования рекомендует новым пользователям/проектам не использовать библиотеку. Поэтому лучшим курсом действий может быть использование чего-то другого
4. Я ПОЛНОСТЬЮ пропустил предупреждение больше не использовать Redux-Форму — Большое вам спасибо за упоминание об этом! — Я только начинаю с этого, так
react-final-form
что все будет хорошо!! — Спасибо, @BrianThompson !!5. PS — @BrianThompson, если вы хотите просто обобщить идею игнорирования предупреждений или перехода к окончательной форме реакции и опубликовать ее в качестве ответа, я с радостью приму ее.