我尝试使用firebase处理Facebook登录 - firebase doc。关于第4a点是我试图用承诺来做到这一点,但老实说,我不知道在这种情况下如何渲染弹出组件......Handling account-exists-with-different-credential Errorsvar password = promptUserForPassword(); // TODO: implement promptUserForPassword.
现在我有这个承诺:
passwordAskPromise.then((password) => {
console.log(password)
firebase.auth().signInWithEmailAndPassword(email, password).then(function(userCredential) {
return userCredential.user.linkWithCredential(pendingCred);
})
})
承诺代码:
const passwordAskPromise = new Promise((resolve, reject) => {
const setDecision = decision => {
if(decision)
resolve(decision)
else
reject(decision)
}
ReactDOM.render(<AskAboutPassword setDecision={(value) => setDecision(value)}/>, document.getElementById("popup"))
})
export default passwordAskPromise;
和 AskAboutPassword:
const AskAboutPassword = props =>{
const [password, setPassword] = useState('')
return (
<div className={styles.AskAboutPasswordContainer}>
<input type="text" value={password} onChange={(e)=>setPassword(e.target.value)}/>
<button onClick={() => props.setDecision(password)}>YES</button>
<button onClick={() => props.setDecision(false)}>NO</button>
</div>
)
}
export default AskAboutPassword;
所有逻辑都有效,但此时此“弹出窗口”一直在屏幕上,因为我添加到索引.html文件。<div id="popup></div>
一只甜甜圈
千巷猫影
随时随地看视频慕课网APP
相关分类