1
在我的React應用程序中,我所有的組件都可以通過瀏覽器自行更新,但是我使用的模塊名爲jenkins-api
僅在我稱之爲服務器端時才起作用。我能得到的數據,並將其傳遞到我的模板是這樣的:渲染或更新服務器上的react元素
require("babel-core/register")({presets: ['es2015', 'react']});
var express = require('express');
var router = express.Router();
var React = require('react');
var ReactDOM = require('react-dom');
var Component = require('../src/javascripts/components/Areachart');
var jenkinsapi = require('jenkins-api');
var jenkins = jenkinsapi.init('https://username:[email protected]:8080', {strictSSL: false});
router.get('/', function(req, res, next) {
jenkins.all_jobs(function(err,jenkins-res){
if (err) {
console.log(err)
}
res.render('index', { title: 'My App', data: JSON.stringify(jenkins-res) });
})
});
但我無法使這些數據提供給我的反應成分,我非常希望能夠做這樣的事
router.get('/', function(req, res, next) {
jenkins.all_jobs(function(err,jenkins-res){
if (err) {
console.log(err)
}
res.render('index', { title: 'My App', data: Component.setState({prop1: jenkins-res.prop1, prop2: jenkins-res.prop2 });
我都甚至試圖使整個陣營組成:
res.render('index', { title: 'My App', data: ReactDOM.render(React.createElement(Component), document.getElementById('main'))});
但由於document
不存在,這不起作用。我想用.setState
或類似的東西來更新服務器檢索數據時我的組件的狀態 - 這可能嗎?
感謝