我有一个类,并且从其调用API。但是我正在重构代码,我想从另一个文件中调用此函数。 那是我当前的函数,该类在Screen类的同一文件中调用。
MyScreen.js
addWishList(product) {
this.addProductsToWishlist(product);
}
async addProductsToWishlist(product){
const loggedCustomerID = await SecureStore.getItemAsync('loggedUserCustomerID');
const wishListID = await SecureStore.getItemAsync('loggedUserWishlistID');
try {
let dataRequest = {
method: 'POST',
body: JSON.stringify({
CustomerID: loggedCustomerID,
WishlistID: wishListID,
WishlistProducts: [{
ProductID: product.ProductID,
Quantity: 1,
WebSiteID: 1
}
]
}),
headers: HEADERS_API
}
const addProductsToWishlistApiCall = await fetch(ADD_PRODUCT_WISHLIST_URL, dataRequest);
const addProductsToWishlistApiResponse = await addProductsToWishlistApiCall.json();
console.log(addProductsToWishlistApiResponse.SavedWishlistProductIDs)
this.setState({wish: !this.state.wish});
} catch(err) {
console.log("Error fetching data-----------", err);
}
}
如何将这个函数放在另一个文件中,然后从我的屏幕文件中调用它?
答案 0 :(得分:1)
您首先需要从函数定义文件中将其导出,然后从MyScreen.js导入。
For more on ES6 import/export。
示例:
//------ lib.js ------
export const sqrt = Math.sqrt;
export async square = (x) => {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}
//------ main.js ------
import { square, diag } from 'lib';
(async function() {
console.log(await square(11)); // 121
})()
console.log(diag(4, 3)); // 5
答案 1 :(得分:1)
您可以导出需要从其他文件调用的函数,然后在另一个文件中导入该函数并调用它。
# convert an array of values into a dataset matrix
def create_dataset(dataset, look_back=1):
dataX, dataY = [], []
for i in range(len(dataset)-look_back-1):
a = dataset[i:(i+look_back), 0]
dataX.append(a)
dataY.append(dataset[i + look_back, 0])
return numpy.array(dataX), numpy.array(dataY)