2016-07-26 19 views
0

我即將實施嚮導形式使用redux-form's wizard form,我注意到他們建議在頁面之間移動時使用this.setState()(如下所示)。這是否違背了redux的做法?我想知道是否有人遇到麻煩,將它與商店連接起來,並認爲您最好是調度操作來控制頁面導航。狀態管理時使用的形式嚮導形式

class WizardForm extends Component { 
    constructor(props) { 
    super(props) 
    this.nextPage = this.nextPage.bind(this) 
    this.previousPage = this.previousPage.bind(this) 
    this.state = { 
     page: 1 
    } 
    } 

    nextPage() { 
    this.setState({ page: this.state.page + 1 }) 
    } 

    previousPage() { 
    this.setState({ page: this.state.page - 1 }) 
    } 

    render() { 
    const { onSubmit } = this.props 
    const { page } = this.state 
    return (<div> 
     {page === 1 && <WizardFormFirstPage onSubmit={this.nextPage}/>} 
     {page === 2 && <WizardFormSecondPage previousPage={this.previousPage} onSubmit={this.nextPage}/>} 
     {page === 3 && <WizardFormThirdPage previousPage={this.previousPage} onSubmit={onSubmit}/>} 
     </div> 
    ) 
    } 
} 

回答

1

在嚮導示例採用setState意爲說明性的,不是規定。我個人使用nextPagepreviousPage來調度增加/減少頁面索引的操作,以及管理頁面歷史記錄。