这是我的初始屏幕:

LoginScreen.js

import { Toast } from 'native-base'

class LoginScreen extends Component {

  showError(error) {
    Toast.show({
      text: error
    })
  }

.....

}

export default connect(mapStateToProps)(LoginScreen)

我试图像下面这样调用showError函数:

loginAction.js
import LoginScreen from './LoginScreen'

let a = LoginScreen.showError('Testing')

我收到一个错误消息:
LoginScreen.showError() is not a function

最佳答案

由于showErrorLoginScreen不相关并且不使用其实例,因此它不应该是其方法。在现代JavaScript中,将类用作 namespace 是一种反模式,ES模块可达到以下目的:

export function showError(error) {
  Toast.show({
    text: error
  })
}

class LoginScreen extends Component {...}

由于showError不会做任何特定于登录屏幕的操作,并且可以在其他地方重用,因此可以将其从LoginScreen移到通用模块。

07-24 17:48