以下的node.js代码正在使用prop渲染我的
现在在组件内部,我正在检查是否已经渲染了该属性...
当我在终端上运行此代码时,控制台会输出
我正在拼命寻找解决方法,我不想重构整个网站。有人能帮我解决这个问题吗?
我需要如何防止重新渲染?
编辑:
所以在我的node.js文件中,我做了以下操作...
在我的jade文件中,我做了以下操作...
App
组件...var reactHtml = reactDom.renderToString(App({exists: true}));
res.render('../../tutorHub/views/index.jade', {reactOutput: reactHtml});
这个组件可以在我的jade文件中被引用,如下所示...
#app != reactOutput
现在在组件内部,我正在检查是否已经渲染了该属性...
render(){
console.log(this.props.exists);
...
...
当我在终端上运行此代码时,控制台会输出
true
。然而,在我的浏览器终端中,我得到了undefined
,这意味着在设置属性后,React在客户端上重新渲染了组件。我正在拼命寻找解决方法,我不想重构整个网站。有人能帮我解决这个问题吗?
我需要如何防止重新渲染?
编辑:
所以在我的node.js文件中,我做了以下操作...
var reactHtml = reactDom.renderToString(App({}));
res.render('../../tutorHub/views/index.jade', {reactOutput: reactHtml, errorExist:true});
在我的jade文件中,我做了以下操作...
#app != reactOutput
script(type='text/javascript')
window.data =!{JSON.stringify(errorExist)};
但是现在我尝试在我的组件中检索数据...
if (window.data) {
return (
<Register />
);
}
else {
return (
<Index event={this.handleClick.bind(this)} />
);
}
但是我会收到错误提示:window
和 data
未定义
。
script = JSON.stringify(myData)
。 - Sal Rahmandata
是在 React 渲染之前还是之后定义的?另外,你可以尝试的另一件事情是,不要将data
声明为一个变量,而是将data
属性分配到全局的window
变量上,这样data
就几乎可以在任何地方使用了。 - Sal Rahman