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

标签 javascript react-native

我正在使用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/

相关文章:

javascript - js - querySelector 在伪类::before 中选择和编辑样式

Javascript 范围和顺序问题

javascript - 剧透部分打开后如何保持格式?

javascript - 我如何通过 google pay 获得付款

javascript - 根据id统计div元素

JavaScript Promise 与 FileReader

javascript - 如何使用带有 expo 的 React-Navigation 正确键入作为 Prop 传递的导航

ios - React Native map 标注按下在 IOS 上不触发

react-native - 行未在 MobX 存储的 React Native ListView 中呈现

css - react native : Adding borderColor creates subtle box shadow