Javascript 来自终端和web检查器的两种不同输出。渲染的视图不正确
使用Javascript 来自终端和web检查器的两种不同输出。渲染的视图不正确,javascript,reactjs,ecmascript-6,react-jsx,Javascript,Reactjs,Ecmascript 6,React Jsx,使用reactjs生成视图时遇到问题。我想提出这两种观点 var test1 = ( <div id="container"> <p>{initials}</p> <p>loggedin!</p> </div> ); var test2 = ( <div id="container"> <p>notloggedin</p>
reactjs
生成视图时遇到问题。我想提出这两种观点
var test1 = (
<div id="container">
<p>{initials}</p>
<p>loggedin!</p>
</div>
);
var test2 = (
<div id="container">
<p>notloggedin</p>
</div>
);
var initials = "";
var isLoggedIn = false;
var Layout = React.createClass({
componentWillMount: function() {
try {
if (window && window.User) {
initials = window.User.name.first[0].toUpperCase() + window.User.name.last[0].toUpperCase();
isLoggedIn = true;
}
} catch(e) {
// ignore
}
},
render: function () {
if (isLoggedIn) {
console.log(window.User);
console.log(initials);
return test1;
} else {
console.log("not logged in");
return test2;
}
}
});
网络检查员:
Object {username: "bli1", userId: "1298085750", address: "127.0.0.1", name: Object, email: "Bradford_Li@gmail.com"…}
BL
上面显示了console.log(window.User)
和console.log(缩写)
的第一个和第二个输出。我不知道为什么会发生这种情况。我不知道如何处理这一点,以达到预期的逻辑
my broswer上显示的视图是test2
我在浏览器上看到的最初内容是:
notloggedin
然后变为
loggedin代码>
浏览器上不显示{initials}
对象。所有出现的是文本loggedin顶部的空白代码>运行终端实例的引擎是什么?PhantomJS?@JDavidSmith node.js这是既没有登录也没有登录的预期行为吗?Node.js没有窗口对象,因此它永远不会显示已登录。@JDavidSmith sorry Hapijs位于nodejs之上。预期逻辑是登录或注销。在这个特定示例中,是否应登录结果?同样,即使使用hapijs,node.js中也没有window对象,因此检查window&&window.User
将始终返回false
,因此给定您发布的代码示例,节点实例将永远不会指示用户已登录。您在哪个引擎中运行终端实例?PhantomJS?@JDavidSmith node.js这是既没有登录也没有登录的预期行为吗?Node.js没有窗口对象,因此它永远不会显示已登录。@JDavidSmith sorry Hapijs位于nodejs之上。预期逻辑是登录或注销。在这个特定示例中,是否应登录结果?同样,即使使用hapijs,node.js中也没有window对象,因此检查window&&window.User
将始终返回false
,因此给定您发布的代码示例,节点实例将永远不会指示用户已登录。
Object {username: "bli1", userId: "1298085750", address: "127.0.0.1", name: Object, email: "Bradford_Li@gmail.com"…}
BL