3

リンクを使用すると、ルーターは期待どおりに動作しますが、警告が表示されます [history] ​​pushState is deprecated; 代わりにプッシュを使用してください。

react-router-redux から routeActions を使用しても機能せず、URL が変更されました ( http://localhost:3002/addCity ) が、同じ (ホーム) を表示するか、URL でページに移動するとエラーが表示されます。例: localhost :3002/addCity.

git: https://github.com/kirsanv43/Weather.git

レデューサー:

export default combineReducers({
  cities,
  routing: routeReducer
});

ストア構成: https://github.com/kirsanv43/Weather/blob/master/app/redux/config/store.js

import rootReducer from '../reducers'

export default function configureStore(initialState) {
  const history = createHistory();
  const middleware = syncHistory(history)

  const finalCreateStore = compose(
    applyMiddleware(middleware)
  )(createStore)

  const store = finalCreateStore(rootReducer)

  middleware.listenForReplays(store);

  if (module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('../reducers', () => {
      const nextRootReducer = require('../reducers').default
      store.replaceReducer(nextRootReducer)
    })
  }

  return store
}

ルーター:

const store = configureStore()

ReactDOM.render(
  <Provider store={store}>
    <Router history={browserHistory}>
      <Route path="/" component={App}>
        <IndexRoute component={Home}/>
        <Route path="addCity" component={AddCity}/>
      </Route>
    </Router>
  </Provider>
  ,
  document.getElementById('root')
);

成分:

class CitiesList extends React.Component { 
  onAddCity = () => { 
    this.props.route.push('/addCity')
  };

  render() {

    return <div className="weatherContainer">
      <ul>
        <li className="listItem addBtn"><a onClick={this.onAddCity}><span>ADD CITY</span></a></li>
        </ul> 
    </div>
  }

}

function mapDispatchToProps(dispatch) {
  return { 
    route:bindActionCreators(routeActions, dispatch)
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(CitiesList)
4

2 に答える 2

0

挿入された createHistory は、'history' から createHashHistory を使用する必要があります

それは私のために働いています

于 2016-02-07T15:24:11.173 に答える