Error while trying to getDataFromTree TypeError: Object(...) is not a function
at _callee$ (webpack:///./server/src/utils/serverUtils.js?:68:97)
at tryCatch (/Users/username/codex/myprojects/bunch/current/node_modules/babel-polyfill/node_modules/regenerator-runtime/runtime.js:65:40)
at Generator.invoke [as _invoke] (/Users/username/codex/myprojects/bunch/current/node_modules/babel-polyfill/node_modules/regenerator-runtime/runtime.js:303:22)
at Generator.prototype.<computed> [as next] (/Users/username/codex/myprojects/bunch/current/node_modules/babel-polyfill/node_modules/regenerator-runtime/runtime.js:117:21)
at asyncGeneratorStep (webpack:///./server/src/utils/serverUtils.js?:18:103)
at _next (webpack:///./server/src/utils/serverUtils.js?:20:194)
at eval (webpack:///./server/src/utils/serverUtils.js?:20:364)
Since renderToStringWithData is working fine and I'm fine using it, but I thought I'll report just in case you would want to take a look and fix it at why getDataFromTree not working.
My implementation was something like this.
export const reactRender = async (req, res) => {
const {routes, store} = res.locals
const dataClient = createDataClient({
initialCache: {},
ssr: true,
headers: {
'cookie': req.header('cookie'),
'User-Agent': req.header('User-Agent'),
'X-Forwarded-For': req.header('X-Forwarded-For'),
'X-Real-IP': req.header('X-Real-IP'),
'Accept': req.header('Accept'),
'Host': req.header('Host')
}
})
const tree = (
<DataProvider client={dataClient}>
<Provider store={store}>
<AppContext.Provider
value={context}>
<StaticRouter location={req.url}>
{routes}
</StaticRouter>
</AppContext.Provider>
</Provider>
</DataProvider>
)
let html
try {
await getDataFromTree(tree, dataClient)
html = renderToString(tree)
} catch (err) {
console.error('Error while trying to getDataFromTree', err)
}
Object.assign(res.locals, {
cache: dataClient.cache,
appHtml: html
})
}
await reactRender(req, res)
res.set('Content-Type', 'text/html')
res.status(200).end(lodashTpl(res.locals))
Let me know if you need any other information from my side. Thanks.