问题描述
我使用 devextreme 的库创建了甘特图。 我试图将信息存储在 2 个数据源中,这与 devextreme 的示例不同。 我的问题是图中没有显示数据,不知道问题出在哪里。
有人可以帮助我吗? 谢谢
HTML
import React from 'react'
import express from 'express'
import ReactDOMServer from 'react-dom/server'
import {StaticRouter} from 'react-router-dom'
import {Provider} from 'react-redux'
import ServerStyleSheets from '@material-ui/styles/ServerStyleSheets'
import {HelmetProvider} from 'react-helmet-async'
import {ChunkExtractor,ChunkExtractorManager} from '@loadable/server'
import path from 'path'
import App from './App'
import store from './redux/store'
import template from './utils/template'
const PORT = 8080
const app = express()
const renderPage = (req,res,preload) => {
const staticRouterContext = {}
const helmetContext = {}
const statsFile = path.resolve(__dirname,'../build','loadable-component.json')
const extractor = new ChunkExtractor({statsFile})
const sheets = new ServerStyleSheets()
const html = ReactDOMServer.renderToString(
sheets.collect(
<ChunkExtractorManager extractor={extractor}>
<HelmetProvider context={helmetContext}>
<StaticRouter location={req.url} context={staticRouterContext}>
<Provider store={store(preload)}>
<App />
</Provider>
</StaticRouter>
</HelmetProvider>
</ChunkExtractorManager>,),)
const {helmet} = helmetContext
const wholeData = template('scripts',{
chunks: html,helmet,extractor,sheets,preload,})
res.send(wholeData)
}
const serverRenderer = (req,next) => {
fetchSomeExternalData()
.then(response => {
// response.data is used as preloaded data and passed to the store of redux
// also stored in a variable called __PRELOADED_STATE__ in window to use in client side
// to populate store of redux
renderPage(req,response,response.data)
})
.catch(err => {
// start server side rendering without preloaded data
renderPage(req,res)
})
}
// each url that i want to render on the server side i should add here individually
// which is not so convenient
app.get('/',serverRenderer)
app.get('/my-url-1/',serverRenderer)
app.get('/my-url-2/',serverRenderer)
app.use(express.static(path.join(__dirname,'/../build/')))
// the * doesnt seem to work
app.get('*',serverRenderer)
app.listen(PORT,() => {
if (process.send) {
process.send('ready')
}
})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)