【问题标题】:React component render Child componentReact 组件渲染子组件
【发布时间】:2015-09-09 19:23:39
【问题描述】:

我的代码有些问题:

1 在这种情况下标题不显示

import React from 'react';
import {Link} from 'react-router';

import CurrentUser from './../services/current-user.js';
import HeaderWithoutLogin from './header-without-login.js';
import HeaderWithLogin from './header-with-login.js';

let Header = React.createClass({
    render: () => {
        var Child = CurrentUser.isLoggedIn()
            ? HeaderWithLogin
            : HeaderWithoutLogin;
        return <div>{Child}</div>;
    }
});

export default Header;

2 在这种情况下我得到一个错误:“无法读取未定义的属性'状态'”

import React from 'react';
import {Link} from 'react-router';

import CurrentUser from './../services/current-user.js';
import HeaderWithoutLogin from './header-without-login.js';
import HeaderWithLogin from './header-with-login.js';

let Header = React.createClass({
    render: () => {
        if (CurrentUser.isLoggedIn()) {
            return <HeaderWithLogin/>;
        }
        return <HeaderWithoutLogin/>;
    }
});

export default Header;

我需要如何使用我的逻辑?我的意思是返回并针对该声明提出不同的看法

【问题讨论】:

  • 您能否详细说明导致状态错误的原因,错误源于哪个组件等或发布每个组件的源代码。
  • @limelights createRouter.js:275 => 未捕获的类型错误:无法读取未定义的属性“状态”,因为在 HeaderWithLogin 中未定义,但为什么呢?
  • 你能发布每个组件的来源吗?
  • 这一定是层次较高的错误,你能发布完整的堆栈跟踪吗?

标签: reactjs


【解决方案1】:

HeaderWithLogin 中的 render 方法不正确。

render: () => {}

将尝试将this 绑定到与您期望的完全不同的东西,这将产生undefined。

改成这个就行了。

render() {}

或 ES5 等价物

render: function () {}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
  • 2016-11-05
  • 2020-05-01
  • 1970-01-01
  • 2018-06-16
  • 2016-08-17
相关资源
最近更新 更多