Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数,而不是返回数据值_Javascript_Firebase_React Native_Firebase Realtime Database - Fatal编程技术网

Javascript 函数,而不是返回数据值

Javascript 函数,而不是返回数据值,javascript,firebase,react-native,firebase-realtime-database,Javascript,Firebase,React Native,Firebase Realtime Database,我正在使用firebase的实时数据库,并尝试检索特定任务的值。 为此,我使用on()方法并添加一个回调函数来返回数据的值,但它只是返回回调函数本身 但是正如您所看到的,我正在控制台中记录检索到的数据(“TEST”),因此检索它没有问题,只返回并显示它 我是firebase的新手,我是本地人,所以请帮助我 这是我的代码文件: class TasksScreen extends Component { taskRef = database() .ref('Tasks') .ch

我正在使用firebase的实时数据库,并尝试检索特定任务的值。 为此,我使用on()方法并添加一个回调函数来返回数据的值,但它只是返回回调函数本身

但是正如您所看到的,我正在控制台中记录检索到的数据(“TEST”),因此检索它没有问题,只返回并显示它

我是firebase的新手,我是本地人,所以请帮助我

这是我的代码文件:

class TasksScreen extends Component {
  taskRef = database()
    .ref('Tasks')
    .child('D8oTrGVFNOT2Gcb7Odwf3SbbVZu2')
    .child('-LrXGvE7IBv930CX4npb')
    .child('title');

  taskTitle = this.taskRef.on('value', function(data) {
    console.log(data.val());
    return data.val();
  });
  render() {
    console.log(this.taskTitle);
    return (
      <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
        <Text>{this.taskTitle.toString()}</Text>
      </View>
    );
  }
}

export default TasksScreen;
class TasksScreen扩展组件{
taskRef=数据库()
.ref(“任务”)
.child('D8OTRGVFNOT2GCB7ODWF3SBVZU2')
.child('-LrXGvE7IBv930CX4npb')
.子女(“头衔”);
taskTitle=this.taskRef.on('value',函数(数据){
console.log(data.val());
返回data.val();
});
render(){
console.log(this.taskTitle);
返回(
{this.taskTitle.toString()}
);
}
}
导出默认任务屏幕;


问题在于您没有调用该函数。您应该像“this.taskTitle()”这样调用函数。

请更改此设置

<Text>{this.taskTitle.toString()}</Text>
<Text>{this.taskTitle().toString()}</Text>
{this.taskTitle.toString()}

<Text>{this.taskTitle.toString()}</Text>
<Text>{this.taskTitle().toString()}</Text>
{this.taskTitle().toString()}

您不能只使用{this.tasktTitle}吗?您是否尝试为tasktTitle添加状态变量,并在执行回调时设置它?(而不是返回值)。添加状态变量解决了我的问题