По какой-то причине мой обработчик onClick не работает с кнопкой facebook (находится в https://developers.facebook.com/docs/facebook-login/web/login-button/)., но он будет работать с общим делителем.
Любая идея, почему onClick нене вызывается на кнопке facebook (второй div)?
<div onClick={this._handleFBLogin}>Facebook Login (working)</div>
<div onClick={this._handleFBLogin}
className="fb-login-button"
data-max-rows="1"
data-size="large"
data-button-type="continue_with"
data-show-faces="false"
data-auto-logout-link="false"
data-use-continue-as="false" />
Симптомы :
onClick()
никогда даже не вызывается.
РЕДАКТИРОВАТЬ: продолжение
На основании ответа @ luschn и некоторых других вопросов (в частности: Реализовать вход в Facebook API с помощью activjs )
Мне пришлось обойти мою _handleFBLogin()
функцию, которая вызывала функцию для обработки авторизации в facebook и непосредственно обрабатывать авторизацию в facebook. Вот соответствующий код в componentDidMount()
:
const facebookCallback = (response) => {
return this._facebookCallback(response)
}
window.fbAsyncInit = function() {
FB.init({
appId : FACEBOOK_APP_ID,
cookie : true, // enable cookies to allow the server to access the session
version : FACEBOOK_API_VERSION
});
FB.Event.subscribe('auth.statusChange', function(response) {
facebookCallback(response)
});
}.bind(this);
Обратите внимание на привязку и подпишитеськ auth.statusChange.
Также мне не нужно было добавлять data-onlogin
из-за этого события подписки.
Наконец, мой исходный код _handleFBLogin был:
_handleFBLogin = () => {
FB.login(response => {
this._facebookCallback(response)
}, {scope: 'public_profile,email'})
}