Я пытаюсь настроить приложение, к которому можно получить доступ на 2 языках.Я слежу за кодом другого приложения, и он точно такой же, как и у меня, просто у меня ошибка:
TypeError: locale.get не является функцией
это App.js
import React, { Component } from 'react'
import './App.scss'
import { PrivateRoute, history } from './routes'
import { Router, Route } from 'react-router-dom'
import { HomeContainer, LoginContainer } from './containers'
import { addLocaleData } from 'react-intl'
import ConnectedIntlProvider from './ConnectedIntlProvider'
import en from 'react-intl/locale-data/en'
import ro from 'react-intl/locale-data/ro'
addLocaleData([...en, ...ro])
class App extends Component {
state = {
persisted: false
}
renderRoutes() {
return (
<ConnectedIntlProvider>
<Router history={history}>
<div className="pageLayoutContainer">
<PrivateRoute exact path="/" component={HomeContainer} />
<Route exact path="/login" component={LoginContainer} />
</div>
</Router>
</ConnectedIntlProvider>
)
}
render() {
return <div className="appContainer">{this.renderRoutes()}</div>
}
}
export default App
и это ConnectedIntlProvider.js
import { connect } from 'react-redux'
import { IntlProvider } from 'react-intl'
import Immutable from 'immutable'
function mapStateToProps(state) {
const locale = state.locale || Immutable.fromJS({})
return {
locale: locale.get('lang'),
key: locale.get('lang'),
messages: locale.get('messages').toJS()
}
}
export default connect(mapStateToProps)(IntlProvider)
ошибка относится к этой строке
locale: locale.get('lang'),
но даже если я удалю его, ту же ошибку я получу и для ключа и для сообщений.
У вас есть идеи, почему это произойдет?Есть мысли о том, как я могу это исправить?
Спасибо