taro项目

搭建

iconfont的使用
引入import '../../style/iconfont2.css'
使用<Text className='iconfont2 icon-sousuo'></Text>
标签别写<i>,改变样式用.icon-sousuo

位置

先获取经纬度



taro中异步编程要装包


image.png
  // 获取用户的地理位置
  async getLocation () {
    let point = await Taro.getLocation()
    console.log(point)
  }
  componentDidMount () {
    this.getLocation()
  }

打印结果


再把经纬度转为城市


逆地址解析网址
引入文件,设置key

// 腾讯地图,坐标逆解析
import QQMapWX from '../../qqmap-wx-jssdk1.0/qqmap-wx-jssdk'
var qqmapsdk = new QQMapWX({
  key: 'xxxxxxxxxxxxxxx'
});

进行逆解析

  // 获取用户的地理位置
  async getLocation() {
    let point = await Taro.getLocation()
    console.log(point)
    let latitude = point.latitude
    let longitude = point.longitude
    let city = (await this.reverseGeocoder({latitude, longitude})).result.address_component.city
    this.setState({
      city,
    })
  }
  // 坐标逆解析方法
  reverseGeocoder(obj) {
    return new Promise((resolve, reject) => {
      qqmapsdk.reverseGeocoder({
        location: obj,
        success(res){
          resolve(res)
        },
        fail(res){
          reject(res)
        }
      })
    })
  }

轮播

首页发请求拿值

  // 获取轮播图
  async getSwiper() {
    let swiperArr = (await Taro.request({
      url: 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
    })).data.data
    this.setState({
      swiperArr,
    })
  }

首页传值给组件,列表渲染

<MtSwiper swiper_arr={this.state.swiperArr}></MtSwiper>
  render() {
    let swiperArr = this.props.swiper_arr
    let elements = swiperArr.map((item, index) => {
      return (
        <SwiperItem className="swiper_item" key={index}>
          <Navigator className="navigator" url={item.url}>
            <Image className="image" src={item.img_src}></Image>
          </Navigator>
        </SwiperItem>
      )
    })
    return (
      <View className="mt_swiper">
        <Swiper className="swiper" indicatorDots autoplay>
          {elements}
        </Swiper>
      </View>
    )
  }
}

菜单

类似轮播,字体图标拼写下
<Text className={"iconfont icon " + item.icon}></Text>

奖励

jsx中不能用路径引入图片,方法如下

import award from '../../imgs/jiangli.png'

<Image src={award} mode="widthFix" className="award"></Image>

拼团

1.
  1. 横向滑动展示商品
    overflow-x: auto;
    white-space: nowrap;
  1. 具有块级元素的特点,能设置宽高;具有内联元素的特点,在同一行展示
display: inline-block;
  1. <image>标签中的mode

  2. text-decoration: line-through;划线

广告组

flex的元素多行显示

flex-wrap: wrap;

猜你喜欢

计算商店和当前定位之间的距离



获取商店经纬度,获取当前位置经纬度,计算距离,渲染数据

  // 获取用户的地理位置
  async getLocation() {
    let point = await Taro.getLocation()
    let latitude = point.latitude
    let longitude = point.longitude
    let city = (await this.reverseGeocoder({latitude, longitude})).result.address_component.city
    this.setState({
      city,
    })
    // 获取shop的信息
    let shopArr = (await this.getShop())
    // 拿到商店的经纬度数组
    let shopDisArr = shopArr.map((item, index) => {
      return {
        latitude: item.distance.lat,
        longitude: item.distance.lng
      }
    })
    let disObj = {
      from: {latitude, longitude},
      to: shopDisArr
    }
    // 计算距离
    let res = (await this.calculateDistance(disObj)).result.elements

    let newShopArr = shopArr.map((item, index) => {
      item.dis = res[index].distance
      return item
    })

    this.setState({
      shopArr: newShopArr
    })

  }
  // 计算距离方法
  calculateDistance(obj) {
    return new Promise((resolve, reject) => {
      qqmapsdk.calculateDistance({
        from: obj.from,
        to: obj.to,
        success (res) {
          resolve(res)
        },
        fail (res) {
          reject(res)
        }
      })
    })
  }

计算距离时,传入的参数obj.to可以是数组

其他问题

npmyarn在创建其他项目的时候有冲突,把yarn卸载了。不再使用yarn dev:weapp来启动项目,而使用npm run dev:weapp来启动项目。此时报错:“ ‘taro' 不是内部或外部命令 也不是可运行的程序”。
解决:npm install -g @tarojs/cli

项目成功启动后,子组件的props拿不到父组件传递的值。
解决:新建项目,把当前代码粘贴过去即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,884评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,212评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,351评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,412评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,438评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,127评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,714评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,636评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,173评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,264评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,402评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,073评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,763评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,253评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,382评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,749评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,403评论 2 358

推荐阅读更多精彩内容