2016-10-10 26 views
1

我剛剛開始與reactjs並試圖讓我的jsx去熱重新加載。我分叉了這個程序:https://github.com/gaearon/react-hot-boilerplate/tree/next如何使反應熱裝載機爲jsx工作?

我改變了app.js稍微:

import React, { Component } from 'react'; 

export default class App extends Component { 
    constructor(){ 
     super(); 
     this.state = { 
     txt: 'this is the txt', 
     cat: 0 
     } 
    } 

    render() { 
    return (<div> 
      {this.state.txt} 
     <h1>sdfdsfdsfs, world.</h1> 
     </div> 

    ); 
    } 
} 

當我改變了H1標籤中的文字是刷新瀏覽器。但是,當我更改txt屬性沒有任何反應。我怎樣才能得到這個工作?

+0

你的意思是,當你改變'this.state = txt的狀態{...}'在構造函數中沒有任何反應? – garrettmaring

回答

1

React-hot-loader無法將更改重新加載到構造函數中的初始狀態。這是因爲組件的構造函數在組件內部發生更改時不會再由react-hot-loader調用。

它不能熱更改到初始狀態的變化。不要忘記這個屬性賦值等同於在構造函數中設置字段。即使您更改構造函數,該字段也已設置。構造函數不會運行兩次。所以這不被支持。

退房這個問題:https://github.com/gaearon/react-transform-hmr/issues/41

+0

這有什麼解決方法嗎? – Michal