fetch 和 axios 在 PlaidLink 组件中不工作,我该如何解决这个问题?
fetch and axios are not working inside PlaidLink component, how can I fix this?
我正在尝试从 <PlaidLink />
组件 onSuccess 道具中向我的后端发出一个简单的 POST 请求。但是,使用 fetch 时,我收到一条奇怪的警告:
Require cycle: node_modules/react-native-plaid-link-sdk/node_modules/react-native/Libraries/Network/fetch.js -> node_modules/react-native-plaid-link-sdk/node_modules/react-native/Libraries/Network/fetch.js
而且我还收到一条错误消息:
TypeError: undefined is not a function (near '...fetch...')
这怎么可能? fetch 显然是一个函数,因为它是 react native API 的一部分。当我尝试在 onSuccess 道具中使用 fetch 时,我只会收到此错误。 fetch 在我的应用程序的其他地方工作得很好。
我也尝试过使用 axios,因为我认为库中可能会发生一些奇怪的 import/name 冲突。但是 axios 甚至不会发出 HTTP 请求。它什么都不做。同样,axios 在我的代码库中的其他地方工作得很好,只是在 onSuccess 内部我遇到了问题。我该如何解决?下面是我的组件和代码。
const PlaidComponent = (props) => {
return (
<PlaidLink
tokenConfig={{
token: props.token,
}}
onSuccess={(success) => {
fetch(API_URL + '/plaidPermanentToken', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
value: success.publicToken,
}),
})
.then((response) => {
console.log('Token exchange complete');
console.log(response);
})
}}>
<View style={styles.button}>
<Text style={styles.textStyle}>Add Account</Text>
</View>
</PlaidLink>
);
};
经过多次排查,我发现问题与使用 YARN 作为我的依赖管理工具有关。
我切换到 NPM,现在 Plaid SDK 可以完美运行。
为此,请从项目根目录中删除“node_modules”文件夹和“yarn.lock”文件。不要触摸“package.json”。 运行 npm install
从根目录中的终端。现在,应用程序应该按预期执行,没有任何关于要求周期的警告。
我正在尝试从 <PlaidLink />
组件 onSuccess 道具中向我的后端发出一个简单的 POST 请求。但是,使用 fetch 时,我收到一条奇怪的警告:
Require cycle: node_modules/react-native-plaid-link-sdk/node_modules/react-native/Libraries/Network/fetch.js -> node_modules/react-native-plaid-link-sdk/node_modules/react-native/Libraries/Network/fetch.js
而且我还收到一条错误消息:
TypeError: undefined is not a function (near '...fetch...')
这怎么可能? fetch 显然是一个函数,因为它是 react native API 的一部分。当我尝试在 onSuccess 道具中使用 fetch 时,我只会收到此错误。 fetch 在我的应用程序的其他地方工作得很好。
我也尝试过使用 axios,因为我认为库中可能会发生一些奇怪的 import/name 冲突。但是 axios 甚至不会发出 HTTP 请求。它什么都不做。同样,axios 在我的代码库中的其他地方工作得很好,只是在 onSuccess 内部我遇到了问题。我该如何解决?下面是我的组件和代码。
const PlaidComponent = (props) => {
return (
<PlaidLink
tokenConfig={{
token: props.token,
}}
onSuccess={(success) => {
fetch(API_URL + '/plaidPermanentToken', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
value: success.publicToken,
}),
})
.then((response) => {
console.log('Token exchange complete');
console.log(response);
})
}}>
<View style={styles.button}>
<Text style={styles.textStyle}>Add Account</Text>
</View>
</PlaidLink>
);
};
经过多次排查,我发现问题与使用 YARN 作为我的依赖管理工具有关。
我切换到 NPM,现在 Plaid SDK 可以完美运行。
为此,请从项目根目录中删除“node_modules”文件夹和“yarn.lock”文件。不要触摸“package.json”。 运行 npm install
从根目录中的终端。现在,应用程序应该按预期执行,没有任何关于要求周期的警告。