我正在使用Isomoprhic React Starter套件项目构建一个Isomorphic react应用程序:https://github.com/kriasoft/react-starter-kit
但是我遇到了一个神秘的警告,我还没弄明白如何解决问题。
React似乎在我的浏览器中呈现代码正常,但显然在服务器上呈现存在一些问题。
以下是我收到的警告:
warning.js:45警告:React尝试在容器中重用标记 但校验和无效。这通常意味着您正在使用 服务器渲染和服务器上生成的标记不是什么 客户期待。 React注入新的标记来补偿 哪个有效,但你失去了服务器的许多好处 渲染。相反,找出生成标记的原因 在客户端或服务器上有所不同:
以下是我的组件中代码问题的来源:
class TestPage extends React.Component {
constructor () {
super()
this.state = { n: 0 }
}
static contextTypes = {
onSetTitle: PropTypes.func.isRequired
};
static defaultProps = {
blahblah: 'blah'
}
render() {
let title = 'Test Page';
this.context.onSetTitle(title);
return (
<div className="page">
<div className="pageContainer">
<h1>{title}</h1>
{this.state.n}
<TestComponent blahblah={this.props.blahblah} />
</div>
</div>
);
}
}