聞きたいこと
React/Reduxを使用してWebアプリを作成しているのですが、<Link>コンポーネントを使用するとタイトルに記載されているエラーが発生してしまいます。
React/Reduxの情報をWebで様々確認してみましたが、情報がすでに過去のものになってしまっている(npmパッケージ等が古くなっている等)などがあり、どうにもわからない状態です。
そこで下記2点質問があります。
- 今回のエラーに対しての対処方法に関して
- React/Reduxのキャッチアップ方法はみなさんどうしているのか
をよければお聞きしたいです。
エラーに関しては下記にコードを載せます。もし情報が不足していましたら補足させていただきますので、よろしくお願いいたします。
コード
- Component
JavaScript
1import React, { Component } from 'react'; 2import { connect } from 'react-redux'; 3import _ from 'lodash'; 4import { 5 BrowserRouter, 6 Route, 7 Switch, 8 Link, 9} from 'react-router-dom'; 10 11import { readLanguages, readRepositories } from '../actions'; 12 13class LanguagesIndex extends Component { 14 componentDidMount() { 15 this.props.readLanguages() 16 } 17 18 readRepositories(event, id) { 19 event.preventDefault(); 20 this.props.readRepositories(id) 21 } 22 23 renderLanguages() { 24 return _.map(this.props.languages, language => ( 25 <React.Fragment key={language.id}> 26 |<Link to={`/languages/${language.id}`} onClick={(event) => this.readRepositories(event, language.id)}>{language.name}</Link> 27 </React.Fragment> 28 )) 29 } 30 31 render() { 32 33 return ( 34 <React.Fragment> 35 <table className="header-table"> 36 <tbody> 37 <tr> 38 <td> 39 <img src="favicon.ico" alt="This describes OSS"/> 40 <b className="hnname"> 41 <a href="">OSS Project List</a> 42 </b> 43 </td> 44 <td className="languages"> 45 {this.renderLanguages()}| 46 </td> 47 </tr> 48 </tbody> 49 </table> 50 </React.Fragment> 51 ) 52 } 53} 54 55const mapStateToProps = state => ({ languages: state.languages }) 56const mapDispatchToProps = ({ readLanguages, readRepositories }) 57 58export default connect(mapStateToProps, mapDispatchToProps)(LanguagesIndex)
- index.js
JavaScript
1import React from 'react'; 2import ReactDOM from 'react-dom'; 3import { createStore, applyMiddleware } from 'redux'; 4import { Provider } from 'react-redux'; 5import thunk from 'redux-thunk'; 6import { BrowserRouter, Route, Switch } from 'react-router-dom'; 7 8import './index.css'; 9import reducer from './reducers'; 10 11import RepositoriesIndex from './components/repositories_index'; 12import LanguagesIndex from './components/languages_index'; 13import registerServiceWorker from './registerServiceWorker'; 14 15const store = createStore(reducer, applyMiddleware(thunk)) 16 17ReactDOM.render( 18 <Provider store={store}> 19 <React.Fragment> 20 <LanguagesIndex /> 21 <BrowserRouter> 22 <Switch> 23 <Route exact path="/" component={RepositoriesIndex} /> 24 <Route path="/languages/:id" component={RepositoriesIndex} /> 25 </Switch> 26 </BrowserRouter> 27 </React.Fragment> 28 </Provider>, 29 document.getElementById('root')); 30registerServiceWorker();
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/07/08 12:57