[英]How to call a function of a class from another file in React Native?
這是我的初始屏幕:
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
由於showError
與LoginScreen
不相關,並且不使用其實例,因此它不應作為其方法。 在現代JavaScript中,使用類作為名稱空間是反模式,ES模塊可達到以下目的:
export function showError(error) {
Toast.show({
text: error
})
}
class LoginScreen extends Component {...}
由於showError
不會執行特定於登錄屏幕的任何操作,並且可以在其他地方重用,因此可以將其從LoginScreen
移至通用模塊。
您可以靜態定義要在另一個文件中調用的方法。 在您的情況下:
import { Toast } from 'native-base'
class LoginScreen extends Component {
static showError(error) {
Toast.show({
text: error
})
}
.....
}
export default connect(mapStateToProps)(LoginScreen)
然后像這樣調用它:
import LoginScreen from './LoginScreen'
let a = LoginScreen.showError('Testing')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.