簡體   English   中英

反應函數沒有被調用

[英]react function not being called

我正在使用node js渲染一個React類...

var express = require('express');
var router = express.Router();

var React = require('react');
var reactDom = require('react-dom/server');
var App = React.createFactory(require('../components/index'));

router.get('/', function(req,res) {
    var reactHtml = reactDom.renderToString(App({}));
    res.render('../../tutorHub/views/index.jade', {reactOutput: reactHtml});
});
module.exports = router;

該頁面呈現得很好,但沒有調用我添加的函數。 例如,在我的App類中...

class App extends React.Component {
    constructor(props) {
        super(props);    
    }
    getClass() {
        return "a_class";
    }

    render() {
        return (
            <div className={this.getClass}></div>
        );
    }
}

module.exports = App;

不會調用getClass函數。 相反,className成為代碼

class = getClass() {
    return "a_class";
}

而不是簡單的a_class當我檢查html。 由於某種原因,它只是被另存為字符串並放入className中,而不是被調用。

為什么會這樣呢? 我無法調用我執行的任何功能。 有人可以幫我嗎?

該函數未調用,因為您沒有調用它。 您可以看到函數的來源,因為任何強制轉換為字符串的函數都將執行相同的操作( (""+(foo=>bar)) === "foo=>bar" )。 您要做的就是:

<div className={this.getClass()}></div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM