javascript - React Native 函数调用不起作用 - 找不到 `this.function2`
问题描述
我无法让这个工作。这可能很简单,但在线上没有有效的信息。
这是我想要做的。
class Test {
componentDidMount() {
this.function1();
}
function1() {
var myListener = listener.on(something) {
console.log('function1 triggered');
key = 'djh3489739082';
name = 'gary';
email = 'gary@email.com';
this.function2(key, name, email);
}
}
function2 = ({ key, name, email }) => {
console.log('key: ' + key);
console.log('name: ' + name);
console.log('email: ' + email);
}
}
基本上就是这样。我在控制台中得到的错误是它找不到变量this.function2
。
this.
当我尝试删除前缀时它不起作用。我的代码中还有一个更简单的函数调用,它可以像这样正常工作:
function3() {
// Some code here
this.function4();
}
function4() {
// Do some things.
}
并且function3
调用function4
没有问题。只是因为我需要传递参数,它才会掉下来,显然没有人需要这样做。我发现const
在函数之前使用的唯一示例。就像:
const function2 = ({ parameter1, parameter2, parameter3 }) => {
但这会立即引发错误。我不能使用const
orvar
或任何那些东西。
这应该很容易,当然!有任何想法吗?
解决方案
这是您的代码中的问题。你有多少参数function2
?一,不是三,而是一。它需要一个 JSON 对象作为参数,它有 3 个属性:和key
,因为你用 包装了它们,但是当你在 中调用它时,你传递了 3 个参数给它,没有,这使它不是一个 JSON 对象。name
email
{}
function1
{}
因此,您可以:
// Don't modify function2 but change function1 like so
function1() {
this.function2({ key, name, email })
}
或者
// Don't modify function1 but change function2 like so
function2(key, name, email) {
}
推荐阅读
- angular - “静态链接”一个打字稿库与 Angular
- javascript - jQuery 中的 CSS 属性
- ios - 将图像 URL 上传到 Firestore
- odoo - 您是否找到了一种将 odoo 核心模块以不同形式保存在 v14 中的方法?那么,可以在 gcloud run 中部署 odoo 吗?
- angular - 如何在 Angular 中使用 Jasmine Karma 对 MatSnackbar 进行单元测试
- python - 快速排序python实现
- jquery - 使用选择在数据表中创建个性化过滤器
- python - 使用重复的第二个标题多次转换 DB 中的 *.csv 文件
- python - Python 语音识别在 Manjaro Linux 中不起作用
- c# - .ParseExact 无法根据格式数组格式化字符串