如何在react js中相互替换组件?

时间:2016-10-03 13:46:11

标签: reactjs

onClick登录组件,我必须显示主页组件和onClick in home组件我必须显示登录组件。但是得到这个错误

Uncaught Error: Element type is invalid: expected a string (for built-in
components) or a class/function(for composite components) but got: object(...)

请帮我解决这个问题。

登录

handleSubmitValidateInput: function(e){
    e.preventDefault();
    ReactDOM.unmountComponentAtNode(document.getElementById('content'));
    ReactDOM.render(<Home UserDetails={data}/>, document.getElementById('content'));
}

handleLogout: function(e){
    e.preventDefault();
    ReactDOM.unmountComponentAtNode(document.getElementById('content'));
    ReactDOM.render(<Login />, document.getElementById('content'));

但是我可以在另一个组件中渲染它们。当我点击主页组件时,我收到错误。

1 个答案:

答案 0 :(得分:2)

您肯定需要查看https://github.com/ReactTraining/react-router来处理页面之间的导航。你不应该直接操作DOM,因为这违反了React的做事方式,因为React使用虚拟DOM来保持状态与真实DOM同步,但这不属于这个问题。

你唯一的时间&#39; ok&#39;直接触摸DOM是在第一次渲染整个应用程序时。像这样:

ReactDOM.render(<MyApp />, document.getElementById('content'));

对于任何其他DOM操作,使用数据绑定,让React发挥其魔力。