Получение предупреждения, когда я использую withCookies () - PullRequest
0 голосов
/ 26 февраля 2019

Я использую реагирующее печенье в моем проекте.Когда я использую withCookies (), я получаю предупреждение в консольном журнале, как это

Предупреждение: сбойный тип пропуска: неверный компонент пропуска объекта типа, предоставленный в Route, ожидаемая функция

Как я могу решить эту проблему .?

Ниже приведен код

import React from 'react';
import { Form, Icon, Input, Button, Checkbox } from 'antd';
import {  withCookies } from "react-cookie";
import './Login.css';

class NormalLoginForm extends React.Component {
    handleSubmit = (e) => {
        e.preventDefault();
        this.props.form.validateFields((err, values) => {
            if (!err) {
                console.log(values);
                const { cookies } = this.props;
                cookies.set('token', 'dfsfsd54dg2g45fg575f432sd4');
            }
        });
    }

    render() {
        const { getFieldDecorator } = this.props.form;
        return (
            <div style={{ textAlign: 'center' }}>
                <img className="logo-white" src={'https://cdn.medcampus.io/wp-content/uploads/2018/08/01131559/MC_Logo_Black.png'} alt="logo"/>
                <div className="login-container">
                    <br/>
                    <Form onSubmit={this.handleSubmit} className="login-form">
                        <Form.Item>
                            {getFieldDecorator('email', {
                                rules: [{ required: true, message: 'Please input your Email id!' }, {
                                    type: 'email', message: 'The input is not valid E-mail!',
                                }],
                            })(
                                <Input prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />} placeholder="Email" size={"large"} />
                            )}
                        </Form.Item>
                        <Form.Item>
                            {getFieldDecorator('password', {
                                rules: [{ required: true, message: 'Please input your Password!' }],
                            })(
                                <Input prefix={<Icon type="lock" style={{ color: 'rgba(0,0,0,.25)' }} />} type="password" size={"large"} placeholder="Password" />
                            )}
                        </Form.Item>
                        <Form.Item>
                            {getFieldDecorator('remember', {
                                valuePropName: 'checked',
                                initialValue: true,
                            })(
                                <Checkbox>Remember me</Checkbox>
                            )}
                            <a className="login-form-forgot" href="">Forgot password</a>
                            <Button type="primary" size={"large"} htmlType="submit" className="login-form-button">Log in</Button>
                        </Form.Item>
                    </Form>
                </div>
            </div>
        );
    }
}

const Login = withCookies(Form.create({ name: 'normal_login' })(NormalLoginForm));

export { Login };

1 Ответ

0 голосов
/ 26 февраля 2019

Следуя комментариям, вы экспортируете все импорты из файлов ваших контейнеров по умолчанию, поэтому в основном вы получите объект, а не функцию (точный экспорт).

Чтобы предотвратить это, естьЕсть несколько способов сделать это:

  • Импортировать ваш контейнер в App из его собственного файла.
  • в index.js из pages, вы можете сделать это:
import { Login } from `LoginContainerFile`;
import { Comp1} from `Comp1ContainerFile`;
import { Comp2} from `Comp2ContainerFile`;
export { Login, Comp1, Comp2 };

Удачи и надеюсь, что это решит вашу проблему.

...