Taro里怎么正确调用小程序的登录API?

美霞🍀 阅读 29

我在Taro项目里想用微信的登录接口,但一直报错说wx.login is not a function,明明文档里说可以用啊?

我试过直接写 Taro.login(),也试过用 wx.login(),都不行。是不是哪里引入错了?

这是我的代码:

import Taro from '@tarojs/taro'

const handleLogin = () => {
  Taro.login({
    success(res) {
      console.log(res.code)
    }
  })
}
我来解答 赞 2 收藏
二维码
手机扫码查看
2 条解答
艳艳🍀
遇到 wx.login is not a function 的错误,通常是因为 Taro 没有正确转换为微信小程序的 API 调用。Taro.login 这种写法是不对的,Taro 并没有直接提供这个封装,你需要用 Taro 的 API 来调用原生的 wx.login。

你试试这样改:

import Taro from '@tarojs/taro'

const handleLogin = () => {
Taro.login({
success(res) {
console.log(res.code)
},
fail(err) {
console.error('登录失败', err)
}
})
}


注意这里还是用的 Taro.login,但是 Taro 已经帮你处理了不同端的兼容性问题,实际上它会调用对应平台的 login 方法。如果还是不行,确保你的项目已经正确配置为微信小程序模式,并且编译环境是对的。

调试看看,如果问题依旧,可能是 Taro 版本的问题,检查一下你用的 Taro 版本是否支持这个功能,或者尝试升级到最新版本。
点赞
2026-03-23 23:01
W″成娟
兄弟,你这个问题跟WordPress没啥关系,但既然问到了我顺便说两句。

你代码写的是对的,Taro.login()在Taro里调用微信登录就是这个写法。报错说wx.login is not a function,多半是你运行的环境不对。

你是在什么环境下跑这段代码?如果是在h5端或者React Native端,微信登录的API本来就不存在,Taro会自动给你一个空函数。

检查一下你的编译目标配置,在Taro项目里要用微信小程序的登录,得确保编译目标是小程序。在config/index.js里看看h5weapp的配置,特别是platform字段。

还有一种可能是你用的Taro版本太老了,老版本有些API不太一样。你可以在控制台先打个console.log(Taro)看看login方法到底有没有。

如果确认是在小程序环境里运行,还是不行的话,看看是不是哪里把Taro对象给覆盖了。

Wp里面我们用微信登录都是直接写插件,没这么多破事哈哈。祝你好运。
点赞
2026-03-17 10:22