2016-04-19 50 views
1
class MyComponent { 
    constructor(props){ 
     super(props); 
    } 
    render() { 
     return <View /> 
    } 
} 

class Test() { 
    constructor(props){ 
     super(props); 
     this.onClick = this.onClick.bind(this); 
    } 

    onClick() { 
     this.my.setPorps({ 
      show: true, 
     }); 
    } 

    render(){ 
     return <MyComponent ref={ ref => this.my = ref }/> 
    } 
} 

如果我引發的onClick功能,這將導致:ES6 setprops不是一個函數

不確定是不是(評估 '_this3.progressbar.setProps({ 禁用:真正})' 功能)

任何人都可以幫我嗎?非常感謝!

回答

0

從陣營文檔:

這種方法已被棄用,將盡快刪除。此方法在擴展React.Component的ES6類組件上不可用。不要調用setProps,請嘗試再次使用新的道具調用ReactDOM.render()。

https://facebook.github.io/react/docs/component-api.html#setprops

(也用你的榜樣,你拼寫它setPorps,但它不會反正工作)

它看起來像你只是想告訴組件顯示本身,在這種情況下,父母狀態可以更新並作爲道具傳遞給孩子:

class Test() { 
    constructor(props){ 
     super(props); 
     this.state = { 
      show: false 
     }; 
     this.onClick = this.onClick.bind(this); 
    } 

    onClick() { 
     this.setState({ 
      show: true 
     }); 
    } 

    render() { 
     return <MyComponent show={this.state.show} /> 
    } 
} 
+0

那麼,我該如何重新渲染部分組件而不是重新渲染所有dom。 – WhiteWater

+0

不夠好,有沒有其他解決方法? – WhiteWater

+0

你究竟想達到什麼目的? –