为什么 FiveM 脚本客户端回调未收到正确的变量类型?

问题描述 投票:0回答:1

我正在创建 FiveM 脚本,我需要获取源 CitizenId,但我的客户端回调函数从服务器事件接收的内容有问题。服务器事件返回一个字符串,我知道它是事实,因为我尝试打印变量并且它在控制台中的类型是正确的。但当它转到返回它的函数时,它就不再是字符串,而是一个“对象”。

为了最小化复制,

这是在单击按钮时调用我的客户端回调的 JS 脚本(工作): html/script.js

const createOrg = () =>{
    var orgName = document.getElementById("neworg-name-input").value;
    fetch(`https://${GetParentResourceName()}/orgcreateCb`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json; charset=UTF-8',
        },
        body: JSON.stringify({
            organizationName: orgName,
        })
    }).then(resp => resp.json()).then(resp => console.log(resp));
    //console.log(orgName);
};

这是返回字符串(Working)的服务器事件: 服务器/main.lua

RegisterServerEvent('getPlayerCitizenId')
AddEventHandler('getPlayerCitizenId', function(cb)
    local currentCitizenId = QBCore.Functions.GetPlayer(source).PlayerData.citizenid
    cb(tostring(currentCitizenId))
end)

这是需要服务器事件返回的客户端回调(不起作用): 客户端/main.lua

RegisterNUICallback("orgcreateCb", function(data, cb)
    TriggerServerEvent('getPlayerCitizenId', function(citizenId)
        print('Citizen ID:', citizenId)
    end)
end)

在打印中我得到 ->“脚本错误:错误对象不是字符串”

javascript types lua callback fivem
1个回答
0
投票

您可以使用

QBCore.Functions.GetPlayerData().citizenid
客户端来获取玩家的citizenid

© www.soinside.com 2019 - 2024. All rights reserved.