gpt4 book ai didi

javascript - 如何使用react-native将this.props传递给js文件

转载 作者:行者123 更新时间:2023-12-01 00:38:42 27 4
gpt4 key购买 nike

我正在使用react-native制作auth组件。
下面的代码发送到'this.props.navigation'的'MainTab'取决于axios的结果。

   <TouchableOpacity onPress={this.handleSubmit}>
<Text>Save</Text>
</TouchableOpacity>

handleSubmit = () => {
const result = await axios.post(
'http://192.0.0.1:4000/clients',
users
);

if (result.data.success) {
return this.props.navigation.navigate('MainTab');
}
return false
};

但我想在其他“js”文件中使用handleSubmit以避免重复执行。
因此,我编辑如下代码。

import { saveSettings } from '../../storage/settingsStorage'

handleSubmit(): void {
saveSettings(this.state);
}


// in 'settingsStorage.js'

export const saveSettings = async users => {
try {
const result = await axios.post(
'http://192.0.0.1:4000/clients/token',
users
);

if (result.data.success) {
return this.props.navigation.navigate('MainTab');
}
return false
} catch (e) {
console.log(e);
}
};

在这种情况下,我知道如果不传递 props,就无法在普通 Js 文件中传递 'this.props'。
但我不知道如何传递 props?
非常感谢您阅读本文。

最佳答案

根据您的描述,我认为您可以将第二个参数添加到 saveSettings 并通过 navigation 对象传递:

import { saveSettings } from '../../storage/settingsStorage'

handleSubmit(): void {
saveSettings(this.state, this.props.navigation);
}


// in 'settingsStorage.js'

export const saveSettings = async (users, navigation) => {
try {
const result = await axios.post(
'http://192.0.0.1:4000/clients/token',
users
);

if (result.data.success) {
return navigation.navigate('MainTab');
}
return false
} catch (e) {
console.log(e);
}
};

关于javascript - 如何使用react-native将this.props传递给js文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57882978/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com