问题描述
import React from 'react';
import ChatRoom from './ChatRoom';
import firebase from 'firebase/app';
import 'firebase/auth';
import './firebase.js';
import { useAuthState } from 'react-firebase-hooks/auth';
const auth = firebase.auth();
function App() {
const [user] = useAuthState(auth);
return (
<div className="App">
<header className="header">
<h2>Messaging App</h2>
<SignOut />
</header>
<section>
{user ? <ChatRoom userInfo={auth}/> : <SignIn />}
</section>
</div>
);
}
//Sign In and Out Fuctions
function SignIn() {
const signInWithGoogle = () => {
const GoogleProvider = new firebase.auth.GoogleAuthProvider();
auth.signInWithPopup(GoogleProvider);
}
const signInWithGithub = () => {
const GithubProvider = new firebase.auth.GithubAuthProvider();
auth.signInWithRedirect(GithubProvider)
}
return (
<div className="socialLogin">
<button type="button" onClick={signInWithGoogle} className="sign-in google">
<img width="27" height="27" src="https://ai.deVoteam.com/wp-content/uploads/sites/91/2018/05/google-logo-icon-png-transparent-background.png" alt="G"/>
<p>Sign in with Google</p>
</button>
<button type="button" onClick={signInWithGithub} className="sign-in google">
<img width="27" height="27" src="https://ai.deVoteam.com/wp-content/uploads/sites/91/2018/05/google-logo-icon-png-transparent-background.png" alt="G"/>
<p>Sign in with git</p>
</button>
</div>
)
}
function SignOut() {
return auth.currentUser && (
<button className="sign-out" onClick={() => auth.signOut()}>Sign Out</button>
)
}
export default App;
我收到这条消息: “无法解析angleX。RawData:174.0”
我不明白为什么它不将 String 解析为 int。
有什么想法吗?
解决方法
您的值中有一个小数分隔符。这表明它不是一个整数,而是一个十进制(或实数)值。
您应该使用 decimal.TryParse()
或 double.TryParse()
而不是 int.TryParse() 然后将结果转换为 int。
string val = "17.0";
decimal d = 0;
int i = 0;
if (!decimal.TryParse(val,NumberStyles.AllowDecimalPoint,CultureInfo.InvariantCulture,out d))
{
Console.WriteLine("Not a decimal");
}
else
{
i = (int)d;
Console.WriteLine(i);
}