Реагировать — Инициализация значений в Redux-Форме приводит к появлению нескольких предупреждающих сообщений

#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, если вы хотите просто обобщить идею игнорирования предупреждений или перехода к окончательной форме реакции и опубликовать ее в качестве ответа, я с радостью приму ее.