狐的傳說
2019-03-12 10:12:34
兩個組件:父組件:constructor(props){ super(props); this.state = { currentPage:0 }}setPage(num){ console.log(this); //得出的是子組件 this.setState({ //提示'setState'不是一個方法 currentPage:num }) }render(){ return( <div> <App setPage = {this.setPage} /> </div> )}子組件:clickFuc(index) { this.setState({ currentIndex: index },()=>{ this.props.setPage(index); }) } render(){ return ( <div onClick={this.clickFuc.bind(this,index)}></div> ) }問題:這里的this還是子組件,沒有指向父組件,該如何達(dá)到通過子組件來改變父組件的state值?
5 回答

慕的地10843
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個贊
用箭頭函數(shù)定義方法
setPage= () => {...}
或者在constructor綁定
constructor(props) {
super(props);
this.state = {
...
};
this.setPage = this.setPage.bind(this);
}

炎炎設(shè)計
TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個贊
setPage = {this.setPage.bind(this)}
orsetPage = {()=>{this.setPage()}}

紅糖糍粑
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個贊
通過 bind 綁定 this
constructor(props){
super(props);
this.state = {
currentPage:0
};
this.setPage = this.setPage.bind(this);
}

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個贊
添加回答
舉報
0/150
提交
取消