将Node.js数据传递给React

时间:2016-08-11 19:14:18

标签: javascript node.js express reactjs

我正在为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实现?

1 个答案:

答案 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);

最后在Re​​act组件中我做了:

componentDidMount() {
    console.log(this.props.text); // all here!
}