Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自终端和web检查器的两种不同输出。渲染的视图不正确_Javascript_Reactjs_Ecmascript 6_React Jsx - Fatal编程技术网

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