Javascript 如何更新全局变量react native的值?
我想更新Javascript 如何更新全局变量react native的值?,javascript,reactjs,react-native,global-variables,local-variables,Javascript,Reactjs,React Native,Global Variables,Local Variables,我想更新bjpv的值,并最终将其状态设置为新的更新状态,我将从firebase函数中获得该状态 我正在将expo用于我的react本机应用程序。这是一个简单的投票应用程序 class Dashboard extends React.Component { constructor(props){ super(props) this.state = ({ name: '', bjp:'', }) this.componentDidMou
bjpv
的值,并最终将其状态设置为新的更新状态,我将从firebase
函数中获得该状态
我正在将expo用于我的react本机应用程序。这是一个简单的投票应用程序
class Dashboard extends React.Component {
constructor(props){
super(props)
this.state = ({
name: '',
bjp:'',
})
this.componentDidMount=()=>{
var bjpv;
console.log("var bjpv loaded")
firebase.database().ref("candid/BJP").once('value').then(function(snapshot){
ping = snapshot.val().votes;
// return bjpv;
console.log("Start firebase");
console.log(bjpv);
console.log(ping);
this.setState.bjpv = this.setState.ping;
console.log("Closing firebase")
})
console.log("No fire");
console.log(bjpv);
console.log("End message")
this.setState(function(state, props){
console.log("Hello")
return {
bjp: bjpv,
}
})
}
}
我想访问这个常量数组中的值
var data = [
{ name: 'BJP', votes : this.state.bjp, color: 'pink', legendFontColor: '#7F7F7F', legendFontSize: 10 }]
最后,我想更新从
firebase
获取的var数据中的投票值,我试图理解您的代码。这就是你的意思吗
class Dashboard extends React.Component {
state = {
name: '',
bjp: ''
}
componentDidMount() {
firebase.database().ref("candid/BJP").once('value')
.then(snapshot => {
let bjp = snapshot.val().votes;
this.setState({ bjp });
})
}
}
请重新编写代码。非常感谢@roel。代码正在运行。还有一件事你能解释一下我哪里做错了吗?这行:
This.setState.bjpv=This.setState.ping
。我想你的意思是this.state.bjpv=this.state.ping
,因为setState
是一个函数,但它也不起作用。不能直接更改状态变量,必须使用setState
更改状态变量。