为什么我在 Symfony 4 WebPack 中得到 'setRoutingData is not a function'?

Why I'm getting 'setRoutingData is not a function' in Symfony 4 WebPack?

我的 app.js 代码如下

import Routing from '../../vendor/friendsofsymfony/jsrouting-bundle/Resources/js/router'
import Routes from './routes.json'
//import routes from '../../web/js/fos_js_routes.js'

  Routing.setRoutingData(Routes);

我收到以下错误..

TypeError: _vendor_friendsofsymfony_jsrouting_bundle_Resources_js_router__WEBPACK_IMPORTED_MODULE_0___default.a.setRoutingData is not a function

如何解决?

你应该使用:

const routes = require('../../public/js/routes.json');
import Routing from '../../vendor/friendsofsymfony/jsrouting-bundle/Resources/public/js/router.min.js';

Routing.setRoutingData(routes);

就像 documentation 建议的那样。

请注意,您应该使用 jsrouting-bundle/Resources/public/js/router.min.js 而不是 jsrouting-bundle/Resources/js/router.js

您可能忘记了路径中的 public 文件夹。