反应未捕获的参考错误:未定义导出

时间:2018-08-20 05:30:14

标签: ruby-on-rails reactjs

我试图将React添加到现有的Rails 5.1应用程序中,但出现此错误:Uncaught ReferenceError:未定义导出。

我正在使用webpacker。这是我的application.js文件的内容:

const numbers = [ ...Array(N).keys() ].map(o => o + 1);
numbers.sort(() => Math.random() - 0.5);
console.log(numbers); // [ 6, 4, 5, 2, 1, 9, 3, 7, 8, 10 ]

在我的组件目录中,有文件register.jsx:

//= require react
//= require react_ujs
//= require components

在Chrome开发人员工具中查看后,此文件将对此进行处理:

class Register extends React.Component {
    render(){
        return(
            <div>
                <h1>Register a Group</h1>
            </div>
        )
    }
}

export default Register

未捕获的引用将被抛出第一行。

任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:0)

应该从// MARK: - WKWebView Delegation extension PaymentWebViewController:WKNavigationDelegate { func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { DILog.print(items: "didFinish") self.hideLoader() if let strUrl = webView.url?.absoluteString { self.readRedirectUrl(stringUrl: strUrl) } } func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { DILog.print(items: "faluere") self.hideLoader() } func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { DILog.print(items: "didStatrt") self.showLoader() if let strUrl = webView.url?.absoluteString { DILog.print(items: "URL IS \(strUrl)") } } func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) { if(challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust) { DILog.print(items: "Auth Channlenge1") let cred = URLCredential(trust: challenge.protectionSpace.serverTrust!) completionHandler(.useCredential, cred) } else { DILog.print(items: "Auth Channlenge2") completionHandler(.performDefaultHandling, nil) } } func webViewWebContentProcessDidTerminate(_ webView: WKWebView) { DILog.print(items: "webViewWebContentProcessDidTerminate") } func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) { DILog.print(items: "didCommit") } func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { DILog.print(items: "decidePolicyFor Action") decisionHandler(WKNavigationActionPolicy.allow) } func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) { DILog.print(items: "decidePolicyFor response ") decisionHandler(.allow) } } 而不是app/javascripts/packs/application.js的应用程序包中加载反应,因为Sprockets使用的默认JavaScript压缩器不支持ES6。

您的React组件也应从app/assets/javascripts/application.js引用。

还要确保在组件文件中正确导入了React:

app/javascripts/components