关于uni-app中导航栏按钮获取实例data值得问题

问题遇到的现象和发生背景

我用uni-app编写的导航栏按钮,不知道怎么让它按下拿到data里面的数据

img

img

问题相关代码,请勿粘贴截图
//pages.json
"pages": [
        {
            "path": "pages/tabBar/front-page/index",
            "style": {
                "navigationBarTitleText": "首页",
                "app-plus": {
                    "bounce": "vertical",
                    "titleNView": {
                        "padding-right": "6px",
                        "buttons": [{
                            "text": "发送   ",
                            // "fontSrc": "/static/uni.ttf",
                            "fontSize": "16px",
                            "width":"auto",
                            "color": "#3370ff"
                        }]
                    }
                }
            }
        }

//index.vue页面
onNavigationBarButtonTap() {
            uni.request({
                url: 'http://192.168.42.129/api/program/program_name.vsn',
                method: "POST",
                dataType: "JSON",
                header: {
                    'Content-type': "application/json;charset=utf-8"
                },
                data: {
                    "Programs": {
                        "Program": {
                            "Pages": [{
                                "Regions": [{
                                    "Rect": {
                                        "X": "3",
                                        "Y": "-40",
                                        "Width": "128",
                                        "Height": "128"
                                    },
                                    "Items": [{
                                        "Type": "5",
                                        "Text": 123,
                                        "LogFont": {
                                            "lfHeight": "12"
                                        },
                                        "textcolor": "0xFF00FF00",
                                        "lfFaceName": "宋体"
                    
                                    }]
                                }]
                            }]
                        }
                    }
                },
                success(res) {
                    uni.showToast({
                        title: "发送成功",
                        icon: "success",
                        mask: "true"
                    })
                    console.log("返回的结果为:", res.data)
                    console.log(this.data)
                }
            });
            
        }

运行结果及报错内容

现在是我们API中data的Text只能是写好的,不能通过变量赋值

我的解答思路和尝试过的方法

尝试在onNavigationBarButtonTap中调用methods的函数,但是不会

我想要达到的结果

能够完成API的请求,同时把vue实例data中某些值赋给接口的Text中

img


改成箭头函数打印一下你表单对应的data


        onNavigationBarButtonTap() {
            let that = this; //定义that变量,将this指向vue实例
            uni.request({
                url: 'http://192.168.42.129/api/program/program_name.vsn',
                method: "POST",
                dataType: "JSON",
                header: {
                    'Content-type': "application/json;charset=utf-8"
                },
                data: {
                    "Programs": {
                        "Program": {
                            "Pages": [{
                                "Regions": [{
                                    "Rect": {
                                        "X": "3",
                                        "Y": "-40",
                                        "Width": "128",
                                        "Height": "128"
                                    },
                                    "Items": [{
                                        "Type": "5",
                                        "Text": 123,
                                        "LogFont": {
                                            "lfHeight": "12"
                                        },
                                        "textcolor": "0xFF00FF00",
                                        "lfFaceName": "宋体"

                                    }]
                                }]
                            }]
                        }
                    }
                },
                success(res) {
                    uni.showToast({
                        title: "发送成功",
                        icon: "success",
                        mask: "true"
                    })
                    that.getData() //调用methods方法
                    console.log("返回的结果为:", res.data)
                    console.log(this.data)
                }
            });

        },
        methods: {
          getData() {
            console.log('我是getData方法')
          }
        }

onNavigationBarButtonTap,这个API就可以的啊,直接this.就可以去到的啊,当然,因为是写在uni.request中的,所以要注意一下this的指向问题就可以了。