У меня есть панель поиска, которая получает ответ от сервера. У меня есть Flatlist, который находится в другом классе и содержит данные из предыдущего источника. Поэтому я хочу, чтобы при нажатии на кнопку с результатами поиска мой ответ был установлен на плоский списокdatasource.and хочу, чтобы экран снова отображался, вот мой код
это мой класс навигатора ... который может создавать вкладки на основе объектов json
class Customers extends React.Component {
state = {
subscriptions: [{}],
dataSource:[],isLoading:true,searchbar:true,search:''
}
}
componentDidMount(){
let data = new FormData();
data.append('methodName', 'items_list');
Sendshoppinapi(data).then((responseJson)=>{
this.setState({subscriptions: responseJson.details_app});
})
}
render() {
const screens = {}
const { navigation } = this.props
const { subscriptions } = this.state
let selectedSubscription = navigation.getParam('subscription')
subscriptions.forEach((subscription) => {
if (selectedSubscription === undefined) {
selectedSubscription = subscription
}
screens[subscription.catgeory_name] = {
screen: () => (
<CustomersTab
subscription={subscription}
topNavigation={navigation}
customers={subscription.items_list}
/>
),
}
})
const TabNavigation = createMaterialTopTabNavigator(screens, {
initialRouteName: selectedSubscription.category_name,
tabBarOptions: {
activeTintColor: 'white', // Color of tab when pressed
inactiveTintColor: '#818388',pressColor: 'gray',
indicatorStyle: {backgroundColor:'#009fdd',padding:2
},
},
})
return (
<View style={{ flex: 1 }}>
{ subscriptions.length > 1 && (
<TabNavigation />
)}
{ subscriptions.length === 1 && (
<CustomersTab
subscription={subscriptions[0]}
customers={subscriptions[0].customers}
/>
)}
</View>
)
}
}
это мой основной классчто отображение плоского списка рендеринга
render() {
const { topNavigation, subscription,customers } = this.props
return (
<View style={{backgroundColor:'#e4e9ee',padding:3,flex:1}}>
<FlatList data={this.props.customers}
horizontal={false}
numColumns={2}
- это моя функция поиска, где я могу получить свой результат и хочу показать в элементах плоского списка
searchcart=()=>{
let data = new FormData();
data.append('methodName', 'filter');
data.append('item_name', this.state.search);
Sendshoppinapi(data).then((responseJson)=>{
console.log(responseJson);
this.setState({subscriptions: responseJson.data});
console.warn(responseJson);
// global.search = responseJson.data;
<CustomersTab
customers = {responseJson.data}
/>
})
}