Visual Studio 2019 中的 asp.net core React redux 项目中的 JavaScript

标签 javascript asp.net reactjs redux visual-studio-2019

我有一个基于 ASP.NET Core 3 React Redux 模板的应用程序。

我在移动应用程序中使用此应用程序,该应用程序知道如何将 javascript 函数注入(inject)到 webview 中,以便在 native C# 代码和 webview javascript 代码之间进行交互。

为了做到这一点,我需要一个全局方法,页面的其余部分 javascript 可以访问该方法,然后可以从移动应用程序调用注入(inject)的 javascript。

这是我的全局 javascript。它包含在名为 jsinteraction.js 的文件中

export function invokeCSCode(data){
    if (invokeCSharpAction)
       invokeCSharpAction(data);
    else
       console.log('invokeCSharpAction not found');
}

我遇到的问题是,当我运行这个网站,然后从我的移动应用程序连接到它时,我收到看起来像 ESLint 错误的信息,并且整个页面只显示该错误。它说:

编译失败

./src/helpers/jsinteraction.js Line 3: 'invokeCSharpAction' is not defined no-undef Line 4: 'invokeCSharpAction' is not defined no-undef

搜索关键字以了解有关每个错误的更多信息。 此错误发生在构建期间,无法消除。

invokeCSharpAction 在应用程序的编译构建期间不会存在,但一旦移动应用程序注入(inject)其代码就会存在。

我认为使用 if (invokeCSharpAction) 将能够处理运行时检测。

我也尝试过在搜索中找到的代码,如下所示:

if (typeof invokeCSharpAction === function)

但我遇到了同样的错误。

我该怎么做?

最佳答案

尝试从窗口访问该函数:

export function invokeCSCode(data){
if (window.invokeCSharpAction)
   window.invokeCSharpAction(data);
else
   console.log('invokeCSharpAction not found');
}

关于Visual Studio 2019 中的 asp.net core React redux 项目中的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59080155/

相关文章:

javascript - 如何使用 Canvas 在另一个图像上绘制图像

asp.net - jQuery 帮助 - 在当前表格单元格和相邻单元格中查找跨度

javascript - 在 JSX 中添加空格的最佳实践

javascript - 使用 JSS 合并类而不是覆盖

javascript - 如何使用 Redux Saga debounce 但首先获取而不是等待 n 毫秒

javascript - 使用解构更新对象键

php - 对每个检查的元素执行函数

javascript - 为什么比较三个数组元素返回 false

ASP.net "{Controller}/"返回 403.14 错误

c# - 在 Controller 方法中发出 token 后获取 token 和用户详细信息