Я использую React Navigation для маршрутизации. Когда пользователь открывает для изменения Stock Item , я хочу добавить кнопку Save , которая получает все измененные переменные из redux state
и запрашивает их в конечной точке API.
В настоящее время я могу добавить кнопку сохранения только в очень статичном смысле, например:
const Stack = createStackNavigator(
{
Home: {
screen: Tabs,
navigationOptions: {
header: null,
},
},
StockScreen: {
screen: StockScreen,
navigationOptions: {
headerRight: (
<Button
onPress={() => {
alert('This is a button!');
}}
title="Save"
color="#fff"
/>
),
},
},
},
{
}
);
И у меня есть вкладка навигатора:
let StockTabs = createMaterialTopTabNavigator(
{
General: {
screen: GeneralStockTab,
},
Pricing:{
screen: PricingTab,
},
Stock:{
screen: StockTab
},
Other:{
screen: OtherTab,
},
},
{
}
);
Теперь эта навигация с вкладками подключена к редуксу следующим образом:
const mapStateToProps = state => ({
item: state.stockItem.item,
itemLoading: state.stockItem.loading,
itemError: state.stockItem.error,
});
const mapDispatchToProps = (dispatch) => {
return ({
fetchStockItem: bindActionCreators(fetchStockItem, dispatch)
})
}
const mergeProps = (state, dispatch, ownProps) => {
return ({
...ownProps,
screenProps: {
...ownProps.screenProps,
...state,
...dispatch,
}
})
}
export default connect(mapStateToProps, mapDispatchToProps, mergeProps)(StockTabs);
Я хочу иметь возможность иметь динамическое логическое значение , позволяющее нажимать кнопку или нет, в зависимости от того, были ли изменены значения, и когда нажата кнопка сохранения, я хочу запустить избыточную функцию до обновить state
и запрос API .
Вот как выглядит приложение на вкладке nav :