React native React本机导航参数不';无法获取更新的值

React native React本机导航参数不';无法获取更新的值,react-native,react-navigation,React Native,React Navigation,我有一个React本地应用程序,其中我从一个组件获取输入,并将输入值作为导航参数发送到另一个组件,在该组件中根据这些输入数据执行搜索。现在,当我通过navigation.getParam接收输入值时,它第一次工作。但是当我返回添加一些新输入并转到另一个组件navigation时,getParam显示的是旧值,而不是当前值。这里是我获取输入的地方: inputData=()=>{ 让bodyData={ 客户id:this.state.customerId, 安全代码:this.state.us

我有一个React本地应用程序,其中我从一个组件获取输入,并将输入值作为导航参数发送到另一个组件,在该组件中根据这些输入数据执行搜索。现在,当我通过
navigation.getParam
接收输入值时,它第一次工作。但是当我返回添加一些新输入并转到另一个组件
navigation时,getParam
显示的是旧值,而不是当前值。这里是我获取输入的地方:

inputData=()=>{
让bodyData={
客户id:this.state.customerId,
安全代码:this.state.userSecurityCode,
供应商:this.state.vendor,
category_id:this.state.categoryName,
country\u id:this.state.countryName,
区域id:this.state.zoneName,
导航标识:1
}
this.props.navigation.navigate('Vendor',bodyData)
}
希望这能奏效

inputData=()=>{
让bodyData={
客户id:this.state.customerId,
安全代码:this.state.userSecurityCode,
供应商:this.state.vendor,
category_id:this.state.categoryName,
country\u id:this.state.countryName,
区域id:this.state.zoneName,
导航标识:1
}
this.props.navigation.push('Vendor',bodyData)
}
组件willmount(){
const{params}=this.props.navigation.state;
this.focusListener=this.props.navigation.addListener(“didFocus”),()=>{
const customer_id=params.customer_id;
常量安全代码=参数安全代码;
常量供应商=参数供应商;
const category_id=params.category_id;
const country_id=参数country_id;
const zone_id=参数zone_id;
设searchBody={
客户id:客户id,
安全代码:安全代码,
供应商:供应商,
类别id:类别id,
国家识别号:国家识别号,
区域id:区域id
}
console.log('in focus',searchBody)
});
}
希望这能奏效

inputData=()=>{
让bodyData={
客户id:this.state.customerId,
安全代码:this.state.userSecurityCode,
供应商:this.state.vendor,
category_id:this.state.categoryName,
country\u id:this.state.countryName,
区域id:this.state.zoneName,
导航标识:1
}
this.props.navigation.push('Vendor',bodyData)
}
组件willmount(){
const{params}=this.props.navigation.state;
this.focusListener=this.props.navigation.addListener(“didFocus”),()=>{
const customer_id=params.customer_id;
常量安全代码=参数安全代码;
常量供应商=参数供应商;
const category_id=params.category_id;
const country_id=参数country_id;
const zone_id=参数zone_id;
设searchBody={
客户id:客户id,
安全代码:安全代码,
供应商:供应商,
类别id:类别id,
国家识别号:国家识别号,
区域id:区域id
}
console.log('in focus',searchBody)
});
}
HomeScreen.js

this.props.navigation.navigate('Screen2',{ customer_id: 123,security_code:'000',vendor: "abc",category_id: 1,country_id: 1,zone_id: 12});
Screen2.js

const params = this.props.route.params
const customer_id = params.customer_id;
const security_code = params.security_code;
const vendor = params.vendor;
const category_id = params.category_id;
const country_id = params.country_id;
const zone_id = params.zone_id;
HomeScreen.js

this.props.navigation.navigate('Screen2',{ customer_id: 123,security_code:'000',vendor: "abc",category_id: 1,country_id: 1,zone_id: 12});
Screen2.js

const params = this.props.route.params
const customer_id = params.customer_id;
const security_code = params.security_code;
const vendor = params.vendor;
const category_id = params.category_id;
const country_id = params.country_id;
const zone_id = params.zone_id;

它显示了这个_this.props.navigation.push不是一个函数@jothibasu你在使用react导航吗?是的,我是。这两个组件都在抽屉组件中。使用上一个,this.props.navigation.navigate('Vendor',bodyData),如果使用navigate,结果与前面的相同。它只在第一次获取bodyData值。它显示了这个_this.props.navigation.push不是一个函数@jothibasus你在使用react navigation吗?是的,我是。这两个组件都在抽屉组件中。使用上一个,this.props.navigation.navigate('Vendor',bodyData),如果使用navigate,结果与前面的相同。它只在第一次获取bodyData值。只有代码的答案几乎总是可以通过添加一些解释来改进的。请编辑答案,包括它如何工作以及为什么工作。只有代码的答案几乎总是可以通过添加一些解释来改进。请编辑答案,包括其工作原理和工作原因。