0

React、React-router、React-router-redux、react-redux の最新バージョンを使用していますが、アプリ以外のルートをレンダリングすることができないようです。私が得るのは空白のページだけです。ネスティングは行っていませんが、セットアップに関係していると思われます...コンソールで調べてもエラーは発生しません。

私の index.js は次のようになります。

import 'babel-polyfill';
// Write entry-point js for webpack here....
import React from 'react';
import {render} from 'react-dom';
import {Provider} from 'react-redux';
import App from './containers/App';
import configureStore from './store/configureStore'
import { Router, Route, browserHistory } from 'react-router';
import { PasswordResetView } from './views/PasswordResetView';
import {Test} from './components/Test';

const store = configureStore()

const reactEntry = document.getElementById('react-root');
// Render....
render(
<Provider store={store}>
  <Router history={browserHistory}>
    <Route path="/" component={App}/>
    <Route path="/test" component={Test}/>
  </Router>
</Provider>,
  reactEntry
)

私のApp.jsはこれです:

import React, { Component, PropTypes } from 'react';
import { connect } from 'react-redux';
import { loginUser } from '../../actions';
import Navbar from '../../components/Navbar';
import {Link} from 'react-router';

class App extends Component {
  render() {
    const { dispatch, isAuthenticated, errorMessage, isFetching } =             this.props
return(
  <div>
    <div>
      <Navbar
        isFetching={isFetching}
        isAuthenticated={isAuthenticated}
        errorMessage={errorMessage}
        dispatch={dispatch}/>
    </div>
    {this.props.children}
    <div>
      <Link to="/test">Test</Link>
    </div>
  </div>
)
  }
}

App.propTypes = {
  dispatch: PropTypes.func.isRequired,
  isFetching: PropTypes.bool.isRequired,
  isAuthenticated: PropTypes.bool.isRequired,
  errorMessage: PropTypes.string
}

const mapStateToProps = (state) => {
  const { isAuthenticated, errorMessage, isFetching } = state.auth
  console.log(state.auth)

  return {
    isAuthenticated,
    errorMessage,
    isFetching
  }
}

export default connect(mapStateToProps)(App)

私のTest.jsファイルは、「react」からReact、{Component}をインポートします

export default class Test extends Component {
  render(){
    return (
      <div>Test</div>
    )
  }
}

どんな助けでも大歓迎です!! きっと、どこかで何かを壊してしまったのだろう...

4

1 に答える 1

0

他のルートを収容するために、App コンポーネントをより多くのホーム/親コンポーネントとして書き直すことになりました。私はreact-routerを誤用していて、子ルートと親ルートの間でレンダリングに何らかの問題があったと推測しています(ただし、 this.props.children を使用してテストしました..誰にもわかりません!)

render(
  <Provider store={store}>
    <Router history={browserHistory}>
      <Route path="/" component={App}/>
      <Route path="/register(/:token)" component={RegistrationCompleteView}/>
      <Route path="/resend-confirmation" component={ResendConfirmationView}/>
      <Route path="/password-reset" component={PasswordRequestView}/>
      <Route path="/password-reset(/:token)" component={PasswordCompleteView}/>
      <Route path="/login" component={LoginView}/>
    </Router>
  </Provider>,
  reactEntry
于 2016-02-22T20:16:32.767 に答える