Reactルーターが最初にコンポーネントをレンダリングしない

プエルト

これは私にとって奇妙なものです。アプリをローカルで起動します。私のアプリには、そのようにヘッダーとタスクページがあります。

  import React, { Component } from 'react';
  import { withRouter } from 'react-router-dom';
  import { connect } from 'react-redux';
  import Header from '../components/header';
  import TasksPage from '../pages/tasks';
  import { Route } from 'react-router';

  class App extends Component {
    render() {
      return (
        <div>
         <Header />
           <main>
             <Route exact path="/" component={TasksPage} />
          </main>
        </div>
      );
    }
  }



  export default withRouter(connect()(App));

そして、私のルーターのもの。

  import './views/styles/styles.css';

  import React from 'react';
  import ReactDOM from 'react-dom';
  import { Provider } from 'react-redux';
  import { ConnectedRouter } from 'react-router-redux';
  import history from './history';
  import configureStore from './store';
  import registerServiceWorker from './utils/register-service-worker';
  import App from './views/app';
  import TaskPage from './views/pages/tasks'

  const store = configureStore();
  const rootElement = document.getElementById('root');


  function render(Component) {
  console.log('COMPONENT::',Component);
   ReactDOM.render(
    <Provider store={store}>
      <ConnectedRouter history={history}>
       <div>
        <Component />
        </div>
       </ConnectedRouter>
       </Provider>,
        rootElement
        );
       }


    if (module.hot) {
    module.hot.accept('./views/app', () => {
    render(require('./views/app').default);
     })
    }


    registerServiceWorker();

最初は空白のページが表示されます。しかし、アプリの実行中にアプリページに変更を加えて保存すると、スペースや行の戻りなど、重要ではないものがあり、突然タスクページが表示されます。その場合は正常に動作します。このプロセスのどの時点でもコンソールにエラーはないので、アプリが最初に読み込まれたときにどこかにルーティングに問題があると思います。

あるいは、このTaskPageと関係があるのか​​もしれません。

 import React, { Component } from 'react';
 import { List } from 'immutable';
 import PropTypes from 'prop-types';
 import { connect } from 'react-redux';
 import { withRouter } from 'react-router-dom';
 import { createSelector } from 'reselect';
 import { getTaskFilter, getVisibleTasks, tasksActions } from 'src/tasks';
  import TaskFilters from '../../components/task-filters';
 import TaskForm from '../../components/task-form';
 import TaskList from '../../components/task-list';


export class TasksPage extends Component {
static propTypes = {
createTask: PropTypes.func.isRequired,
filterTasks: PropTypes.func.isRequired,
filterType: PropTypes.string.isRequired,
loadTasks: PropTypes.func.isRequired,
location: PropTypes.object.isRequired,
removeTask: PropTypes.func.isRequired,
tasks: PropTypes.instanceOf(List).isRequired,
updateTask: PropTypes.func.isRequired
};

componentWillMount() {
this.props.loadTasks();
this.props.filterTasks(
  this.getFilterParam(this.props.location.search)
);
}

componentWillReceiveProps(nextProps) {
if (nextProps.location.search !== this.props.location.search) {
  this.props.filterTasks(
    this.getFilterParam(nextProps.location.search)
  );
 }
}

componentWillUnmount() {
 // this.props.unloadTasks();
 }

getFilterParam(search) {
const params = new URLSearchParams(search);
return params.get('filter');
}

render() {
return (
  <div className="g-row">
    <div className="g-col">
      <TaskForm handleSubmit={this.props.createTask} />
    </div>

    <div className="g-col">
      <TaskFilters filter={this.props.filterType} />
      <TaskList
        removeTask={this.props.removeTask}
        tasks={this.props.tasks}
        updateTask={this.props.updateTask}
      />
    </div>
  </div>
  );
 }
 }


 //=====================================
//  CONNECT
//-------------------------------------

 const mapStateToProps = createSelector(
getTaskFilter,
getVisibleTasks,
(filterType, tasks) => ({
 filterType,
 tasks
 })
 );

const mapDispatchToProps = Object.assign(
 {},
 tasksActions
  );

export default withRouter(connect(
mapStateToProps,
 mapDispatchToProps
 )(TasksPage));
プエルト

それで、ホットローディングまたは多分私がそれをセットアップした方法で何か?? 私はその最良の答えを言っていませんが、それは私の問題を解決しました。誰かがこれをよりよく説明できれば、私はこの件についてより明確な回答を喜んで受け入れます

これは、ドキュメントに基づいて機能するはずです。しかし、私はそれをコメントアウトして、ReactDOM.Renderを自分で使用することに戻りました。ラップされた関数または。そして奇妙なことに、ホットローディングはまだ機能しているようです。

// function render(Component) {
 ReactDOM.render(
  <Provider store={store}>
   <ConnectedRouter history={history}>
     <div>
      <App/>
    </div>
  </ConnectedRouter>
</Provider>,
rootElement
 );
// }


  // if (module.hot) {
 //   module.hot.accept('./views/app', () => {
 //     render(require('./views/app').default);
 //   })
// }

参考までに-Imreact-router 4.x、Redux 5.x、React15.x。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Reactルーターが正しいコンポーネントをレンダリングしない

分類Dev

Reactルーターがコンポーネントをレンダリングしない

分類Dev

React データ コンポーネント テーブルが HTML をレンダリングしない

分類Dev

最初にクリックして、reactでコンポーネントを再レンダリングしない

分類Dev

React-ルータースイッチコンポーネントが同じパスのコンポーネントをレンダリングしない

分類Dev

ルーターリゾルバーがコンポーネントをレンダリングしない

分類Dev

React / Routerがコンポーネントをレンダリングしない

分類Dev

React / Routerがコンポーネントをレンダリングしない

分類Dev

パスコンポーネントをレンダリングしないReactルーター

分類Dev

コンポーネントをレンダリングしないReactルーター

分類Dev

特定のコンポーネントをレンダリングしないReactルータースイッチ

分類Dev

Reactルーターは子コンポーネントのルートに新しいコンポーネントをレンダリングしません

分類Dev

反応ルーターを使用してコンポーネントがレンダリングされない

分類Dev

react-router-ルート変更時にコンポーネントをレンダリングしない

分類Dev

Reactルーターは常にネストされたコンポーネントの最初のルートをレンダリングします

分類Dev

親でsetStateをトリガーしないReactルートレンダリングコンポーネント

分類Dev

コンポーネントをレンダリングしないルート

分類Dev

更新時にOmrefカーソルがコンポーネントを再レンダリングしない

分類Dev

Reactルーター| コンポーネントがレンダリングされない

分類Dev

Vueコンポーネントがルータービュー内にレンダリングされない

分類Dev

Reactルーターが開始ページコンポーネントを正しくレンダリングしない

分類Dev

ルートコンポーネントをレンダリングしないReact

分類Dev

ユーザーがログインした後、reactルーターで異なるコンポーネントをレンダリングする方法

分類Dev

反応ルーター4を使用してもReactコンポーネントがレンダリングされない

分類Dev

ReactコンポーネントがAxiosリクエストの応答をレンダリングしない

分類Dev

Reactルーターレンダリングプロップルートは常にコンポーネントを再レンダリングします

分類Dev

ルーターを使用せずに新しいコンポーネントをレンダリングする

分類Dev

Reactカスタムコンポーネントが期待どおりにレンダリングされない

分類Dev

ExpressアプリがReactコンポーネントをレンダリングしない

Related 関連記事

  1. 1

    Reactルーターが正しいコンポーネントをレンダリングしない

  2. 2

    Reactルーターがコンポーネントをレンダリングしない

  3. 3

    React データ コンポーネント テーブルが HTML をレンダリングしない

  4. 4

    最初にクリックして、reactでコンポーネントを再レンダリングしない

  5. 5

    React-ルータースイッチコンポーネントが同じパスのコンポーネントをレンダリングしない

  6. 6

    ルーターリゾルバーがコンポーネントをレンダリングしない

  7. 7

    React / Routerがコンポーネントをレンダリングしない

  8. 8

    React / Routerがコンポーネントをレンダリングしない

  9. 9

    パスコンポーネントをレンダリングしないReactルーター

  10. 10

    コンポーネントをレンダリングしないReactルーター

  11. 11

    特定のコンポーネントをレンダリングしないReactルータースイッチ

  12. 12

    Reactルーターは子コンポーネントのルートに新しいコンポーネントをレンダリングしません

  13. 13

    反応ルーターを使用してコンポーネントがレンダリングされない

  14. 14

    react-router-ルート変更時にコンポーネントをレンダリングしない

  15. 15

    Reactルーターは常にネストされたコンポーネントの最初のルートをレンダリングします

  16. 16

    親でsetStateをトリガーしないReactルートレンダリングコンポーネント

  17. 17

    コンポーネントをレンダリングしないルート

  18. 18

    更新時にOmrefカーソルがコンポーネントを再レンダリングしない

  19. 19

    Reactルーター| コンポーネントがレンダリングされない

  20. 20

    Vueコンポーネントがルータービュー内にレンダリングされない

  21. 21

    Reactルーターが開始ページコンポーネントを正しくレンダリングしない

  22. 22

    ルートコンポーネントをレンダリングしないReact

  23. 23

    ユーザーがログインした後、reactルーターで異なるコンポーネントをレンダリングする方法

  24. 24

    反応ルーター4を使用してもReactコンポーネントがレンダリングされない

  25. 25

    ReactコンポーネントがAxiosリクエストの応答をレンダリングしない

  26. 26

    Reactルーターレンダリングプロップルートは常にコンポーネントを再レンダリングします

  27. 27

    ルーターを使用せずに新しいコンポーネントをレンダリングする

  28. 28

    Reactカスタムコンポーネントが期待どおりにレンダリングされない

  29. 29

    ExpressアプリがReactコンポーネントをレンダリングしない

ホットタグ

アーカイブ