問題があります。私はcomponentDidMountの "modalData"という状態を常に "null"と呼びます。タスク変数のデータが必要です。componentDidMountの状態は常にnullです。タスク変数のデータがあるはずです
constructor(props){
super(props);
this.tasksRef = firebase.database().ref('/users/'+ this.props.card_id);
this.state = {
modalData : null,
}
}
componentDidMount(tasksRef){
var task = [];
tasksRef.on('value', (dataSnapshot) => {
task.push({
about : dataSnapshot.val().about,
card : dataSnapshot.val().card,
company : dataSnapshot.val().company,
first_name : dataSnapshot.val().first_name,
job_title : dataSnapshot.val().job_title,
last_name : dataSnapshot.val().last_name,
photo : dataSnapshot.val().photo,
role : dataSnapshot.val().role,
thumbnail : dataSnapshot.val().thumbnail,
title : dataSnapshot.val().title,
website : dataSnapshot.val().website,
_key : dataSnapshot.key
});
console.log('dataSnapshot.val().first_name : ' + dataSnapshot.val().first_name);
});
console.log(task); //there is data
this.setState({
modalData : task,
});
console.log(this.state.modalData); //there is no data
}
componentDidMountメソッドは、引数https://reactjs.org/docs/react-component.html#componentdidmount – Kunukn
^thisを使用せず、代わりに 'this.taskRef'を使用します。 – Chris
'componentDidMount'の中で' this.setState'を動かす –