首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UI状态与Redux状态

UI状态与Redux状态
EN

Stack Overflow用户
提问于 2018-07-18 00:52:04
回答 1查看 118关注 0票数 0

所以我的应用程序有3个下拉列表,一个分页组件和一个表。

两个下拉列表从rest调用中接收它们的选项。

例如:州和城市。

根据州的选择,城市下拉菜单发出获取城市的rest调用。

根据在下拉列表中所做的选择,表中的数据通过进行rest调用来更新。

react.org示例讨论了如何提升状态。因此,显示所有三个下拉列表和表格的父组件维护跟踪选择了哪个州、城市和日期以及表格中显示的数据是什么的状态。每次下拉选择更改父状态时,都会更新并重新获取新数据。此外,表数据每隔几秒钟通过发送选定的州、城市和日期进行更新。

我的问题是,rest是否应该调用获取有关dropdown选项的信息在父组件或相应的dropdown组件中,以便我可以在其他页面中重用dropdown,并且我是否需要dropdown有自己的状态来跟踪所选值是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-07-18 01:06:12

rest是否应该调用来获取有关下拉选项的信息?

获取数据的rest调用应该只是父组件的一部分。将dropdown组件保留为纯组件是有意义的,它从父组件接收选项值作为道具。

遵循这个方法,你的dropdown组件将真正成为可重用的组件,它的唯一工作就是显示选项,并通过一个回调函数将选定的值传递回它的父组件,该回调函数被作为prop传递给dropdown组件。

我是否需要下拉菜单有自己的状态来跟踪选定的值?

不需要,您可以使用回调函数将选定的值传递回父对象。

一些代码

代码语言:javascript
复制
Parent Component -->

constructor(){
    this.state = {
        stateOptions: null,
        cityOptions: null,
        selectedState: null,
        selectedCity: null 
    }
}
componentDidMount(){
    fetch.state.api => {
        this.setState({
            stateOptions: stateDataFromApi
        })
    }
}

handleStateSelection = (selectedState) => {
    fetch.city.api => {
        this.setState({
            selectedState: selectedState,
            cityOptions: cityDataFromApi
        })
    }
}

handleCitySelection = (selectedCity) => {
    this.setState({
        selectedCity: selectedCity
    })
}


<div className="parentComponent">
    <Dropdown 
        type="state" 
        handleStateSelection="this.handleStateSelection"
        data={this.state.stateOptions}
    />
    <Dropdown 
        type="city" 
        handleStateSelection="this.handleCitySelection"
        data={this.state.cityOptions}
    />
    <Table data={this.tableData} />
    ..
    ..
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51386647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档