我正在为React代码重新调整组件。
以前我用Jade编译它并将 i18n 文本从Jade global直接传递给HTML。像这样:
// in Node.js / Express
const text = require('./assets/texts.json');
app.get('/route', (req, res) => {
render('page', text);
});
在Jade我会:
h3= text.en.title
p= text.en.subtitle
现在我正在使用React进行此操作,我想知道如何将数据传入其中?
如果我在反应文件中执行const text = require('./texts.json');
,我会收到错误...
如何以与Jade相同的方式将数据从Node传递到React?是否只能通过客户端的Ajax实现?
答案 0 :(得分:1)
好的,所以在我找到答案的问题中得到了回报......
我最终在我的DOM元素中传递了我的文本信息,该元素将接收我的React组件。所以在Jade我做了:
-
var words = ["calculate_price", "price_info", etc etc... ];
var text = words.reduce(function(obj, word){
return (obj[word] = lang[word], obj);
}, {});
#dialog_wrapper(data-text= JSON.stringify(text))
并在我安装组件的文件中:
const dialogWrapper = document.getElementById('dialog_wrapper');
const dialogText = JSON.parse(dialogWrapper.dataset.text);
ReactDOM.render(<BookingDialog text={dialogText}/>, dialogWrapper);
最后在React组件中我做了:
componentDidMount() {
console.log(this.props.text); // all here!
}