2017-07-07 33 views
0

我想通過onClick從另一個組件(list.js)按鈕調用模型在「model.js」,只是想知道如果我錯過了任何一步請看如下:ReactJS - 我可以打開從不同的組件模態

model.js

import React from 'react'; 

class Model extends React.Component{ 

render(){ 
    return(
    <div> 
    //code inside the Model etc... 
    <Button onClick={this.submit.bind(this)}>Submit</Button> 
    </div> 
) 
} 
} 

export default Model; 

list.js

import Model from './model'; 
class List extends React.Component{ 
render(){ 

    constructor() { 
    super(); 

    this.toggleModal = this.toggleModal.bind(this); 
    this.state = { 
    open: false 
    } 
    } 

    toggleModal() { 
    this.setState({ 
    open: this.state.open 
    }); 
    } 

return(
<div> 
    <Button onClick={this.toggleModal}>Add</Button> 
</div> 
<div> 
    <Model open={this.state.open} toggleModal={this.toggleModal}/> 
</div> 
) 
} 
} 

export default List; 

我已經嘗試了許多方法來改變在列表中的事件處理程序代碼,但它仍然不工作。

如果你們可以幫我一把,指出問題出在哪裏,那麼我可以向前邁進。

回答

1

你爲什麼不改變狀態open值爲true或false

this.setState({ 
    open: this.state.open 
}); 

上面的代碼將永遠設置值爲false。也許你可以做的是!this.state.open

+0

感謝兄弟 問題解決:} –

+0

很高興幫助:) –

1

你一定會錯過感嘆號,因爲就目前而言,當點擊按鈕時你總是會指定false值 - 模態不會顯示出來。

this.setState({ 
    open: !this.state.open 
}); 
相關問題