У меня есть родительский компонент, который имеет состояние:
class RecordEdit extends PureComponent {
state = {
allRecordData: {},
changelog: [
{hello1: '1'},
{hello2: '2'}
]
}
Он пытается отрендерить своего потомка и передать ему реквизит:
<div className='cards-container'>
<ChangeHistory recordEditHistory={this.state.changelog} />
</div>
И компонент ChangeHistory
пытается отобразить полученную реквизит для отображения списка элементов:
const ChangeHistoryCard = ({ t }, props) => (
<CardOuterContainer recordEditHistory={props.recordEditHistory}>
<h1>{t('История изменений')}</h1>
{
props.recordEditHistory &&
props.recordEditHistory.map(item =>
<p>{t('Последнее изменение')}: <span>[22.11.2018]</span></p>
)
}
</CardOuterContainer>
);
export default withNamespaces()(ChangeHistoryCard);
По какой-то причине компонент всегда думает, что реквизит recordEditHistory
не определен.Но если щелкнуть по нему в инспекторе, я вижу, что значение успешно передано:
Я не понимаю проблему.Может ли это быть потому, что я использую i18n , а использование withNamespaces
делает что-то с реквизитом или ...?Мне нужно понять, как решить эту проблему.
ВАЖНО: {t} из i18n-реагирует, я использую его для перевода интерфейса на английский и обратно.Я попытался удалить его полностью, и это не помогло.
EDIT : я попытался удалить метод { t }
и удалить withNamesSpaces()
HOC из экспорта, и теперь все работает.Но теперь я не могу использовать i18n-react
в этом компоненте: (