小编Jay*_*osh的帖子

JS项目中的FB.logout给出错误“表达式类型未定义,不是函数”

我正在尝试在我的 React 网站上添加使用 FB 登录

FB.init({
    appId      : app_id,
    cookie     : true,
    xfbml      : true,
    version    : 'v5.0'
});
Run Code Online (Sandbox Code Playgroud)

其次是

FB.getLoginStatus(({status}) => {
    if (status === 'connected') {
        FB.logout();
    }
    FB.login((response) => {
        if (response.authResponse) {
            const {authResponse: {accessToken}} = response;
            onSuccess(accessToken);
        } else {
            onError({error: 'popup_closed_by_user'});
        }
    }, {scope: 'email'});
})
Run Code Online (Sandbox Code Playgroud)

但是它第一次打开弹出窗口(当getLoginStatus不是connected)然后第二次它在控制台上显示错误

Uncaught b { innerError: undefined, message: "Expression is of type undefined, not function" }
Run Code Online (Sandbox Code Playgroud)

经过进一步调查,我发现该错误发生在FB.logout()调用该行时。

我可能做错了什么?

注意相同的代码一直工作到昨天。

javascript facebook-login reactjs

10
推荐指数
1
解决办法
416
查看次数

React.lazy 不在生产模式下工作

我有一个正在运行的 React 应用程序,我想使用 React.lazy 添加基于路由的代码拆分。

目前我的代码是,

import { PureComponent, cloneElement, Suspense, lazy } from 'react';
...
export const CartPage = lazy(() => import(/* webpackMode: "lazy", webpackPrefetch: true */ 'Route/CartPage'));
...
<Suspense fallback={ this.renderFallbackPage() }>
    <NoMatchHandler>
       <Switch>
          ...
             <Route path="/cart" exact component={ CartPage } />
          ...
       </Switch>
    </NoMatchHandler>
</Suspense>
Run Code Online (Sandbox Code Playgroud)

这里只提到了相关部分,以使其紧凑。

现在的问题是,在 webpack-dev-server 中,它运行得很好,但是当我运行 npm run build 并转到/cart代码中断时。按照提到的错误链接后,这是消息

Element type is invalid. Received a promise that resolves to: function i(e){var r;return
r=t.call(this,e)||this,T()(y?!e.wrapperProps[d]:!e[d],"Passing redux store in props has
been …
Run Code Online (Sandbox Code Playgroud)

reactjs webpack code-splitting redux

7
推荐指数
1
解决办法
1231
查看次数

如何设计多字段的javascript提示框

据我从我的研究中可以看出,您无法使用可以从 JavaScript 调用的任何内置方法来创建多字段提示对话框。那么大多数路由器(192.168.0.1)的主页是如何开发认证提示框的,如下图?

我做了更多研究,发现您可以使用 php 设置基本的 http 身份验证

$user = 'user';
$password = 'pass';
if (!($_SERVER['PHP_AUTH_USER'] == $user && $_SERVER['PHP_AUTH_PW'] == $password)) {
    header('WWW-Authenticate: Basic realm="Please enter username and password to access this website"');
    header('HTTP/1.0 401 Unauthorized');
    echo '<h1>Unauthorized Access</h1>';
    exit;
}
echo "normal website contents";
Run Code Online (Sandbox Code Playgroud)

1

html javascript php http-authentication

0
推荐指数
1
解决办法
1417
查看次数