Я использую React Context API для отображения моего сайта на нескольких языках.Все работает должным образом, за исключением того, когда я пытаюсь вставить заполнитель в текстовую область. Он отображает [object Object]
.Если я использую тот же компонент в моем фактическом, например, тегах
, он отображается правильно!
import React, { Component } from "react";
import Translate from '../translations/Translate'
class FormEntry extends Component {
render() {
return (
<div className="inputArea shadow">
<textarea
className="dataInputChild"
placeholder={<Translate string={'submitbox.copy-and-paste'}/>}//this displays [object Object]
/>
<p><Translate string={'submitbox.copy-and-paste'}/></p> //this displays the desired text
</div>
);
}
}
export default FormEntry;
Компонент для перевода выглядит следующим образом:
import React, { PureComponent } from "react";
import en from "./en.json";
import es from "./es.json"; //these are the dictionary files
import cn from "./cn.json";
LanguageContext = React.createContext()
export default class Translate extends PureComponent {
constructor(props) {
super(props);
this.state = {
langs: {
en,
es,
cn
}
};
}
render() {
const {langs} = this.state
const {string} = this.props
return (
<LanguageContext.Consumer>
{value => langs[value][string]}
</LanguageContext.Consumer>
);
}
}
Кто-нибудь может увидеть, что я делаю неправильно?
Спасибо!