Компонент React не отображается с помощью Link

У меня проблема с использованием response, redux и response router.

Когда я просматриваю страницы с помощью <Link>, компоненты не полностью перерисовываются.

Например: если я нахожусь на странице входа и перехожу на страницу регистрации (используя ссылку), в последнем случае некоторые элементы css / js не будут отображаться правильно.

Вот мой код: (без импорта и нерелевантных деталей)

Главный компонент

class App extends Component {

  render() {
    return (
      <div className = "container-scroller">
        <LoadingBar showFastActions style = {{ backgroundColor: 'orange', height: '4px' }}  />
        <BrowserRouter>
          <Router history = {History}>
            <Switch>
              <PrivateRoute exact path = "/" component = {DashboardPage} />
              <PrivateRoute exact path = "/facility" component = {FacilityPage} />
              <Route exact path = "/register" component = {RegisterPage} />
              <Route exact path = "/signin" component = {SignInPage} />
              <Route exact path = "/signout" component = {Signout} />
              <Route component = {NotFoundPage} />
            </Switch>
          </Router>
        </BrowserRouter>
      </div>
    );
  }
}

export default App;

Страница авторизации :

class SignInPage extends Component {
  constructor(props) {
    super(props);

    this.state = {
      email: '',
      password: ''
    };
  }

  handleChangeEvent = e => {
    const { name, value } = e.target;
    this.setState({ [name]: value });
  }

  handleSubmit = e => {
    e.preventDefault();
    this.props.signIn(this.state.inputEmail, this.state.inputPassword);
  }

  render() {

    {/* redirect user if already logged in */}
    let token = localStorage.getItem('token');
    if (token) {
      return <Redirect to='/' />
    }

    return (
      // sign in form
      <div className = "mt-3 text-center">
        <Link to = "/register" className = "auth-link text-white">
          Don't have an account ?
          <span class = "font-weight-medium"> Sign in</span>
        </Link>
      </div>
    )
  }
}

const mapStateToProps = state => {
  return {
    errors: state.auth.errors,
  };
}

const mapDispatchToProps = dispatch => {
  return {
    signIn: (email, password) => {
      return dispatch(userActions.signIn(email, password));
    }
  };
}

export default withRouter(connect(mapStateToProps, mapDispatchToProps)(SignInPage));

Страница регистрации:

import '../../node_modules/jquery-validation/dist/jquery.validate.min.js';
import '../assets/js/form-validation.js';

class RegisterPage extends Component {
  constructor(props) {
    super(props);

    this.state = {
      email: '',
      password: '',
      password_confirmation: '',
      first_name: '',
      last_name: '',
    };
  }

  handleChangeEvent = e => {
    const { name, value } = e.target;
    this.setState({ [name]: value });
  }

  handleSubmit = e => {
    e.preventDefault();
  }

  render() {

    {/* redirect user if already logged in */}
    let token = localStorage.getItem('token');
    if (token) {
      return <Redirect to='/' />
    }

    return (
      // register form
    )
  }
}

const mapStateToProps = state => {
  return {
    errors: state.users.errors,
  };
}

const mapDispatchToProps = dispatch => {
  return {
    signIn: (email, password, firstName, lastName) => {
      return dispatch(userActions.register(email, password, firstName, lastName));
    }
  };
}

export default withRouter(connect(mapStateToProps, mapDispatchToProps)(RegisterPage));

Похоже, что не только я столкнулся с этой проблемой. Я пробовал решение withRouter, но оно не работает.

Может кто-нибудь мне помочь ?

Заранее спасибо !

откуда ваш css импортируется из

Shubham Gupta 23.09.2018 17:06

В файле index.js, который создает хранилище redux и отображает компонент приложения. CSS работает на странице регистрации, но некоторые элементы, такие как флажок, не отображаются на странице, а кнопки не работают. И 2 файла JS, которые я импортирую на моей странице RegisterPage, похоже, не импортируются.

Mayew 23.09.2018 17:10

Я думаю, вам следует проверить, правильно ли вы импортируете эти необходимые файлы. проверьте, правильно ли экспортируются модули из этих файлов. и если у вас есть стили, специфичные для компонентов, я думаю, что лучше импортировать непосредственно в эти компоненты, чем широкий импорт в index.js

Femi Oni 23.09.2018 17:28

Что именно не так с рендером? Можете ли вы создать рабочую скрипку (представляющую ошибку)? Я думаю, что компонент, возвращаемый withRouter, не делает именно то, что вы ожидаете.

gorhawk 23.09.2018 18:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
157
0

Другие вопросы по теме