简单示例,这里用的是Fusion的Table
1 | import { Table, Button } from "@alifd/next"; |
实际上核心代码就这几行
1 | const htmlString = '' // 这里就是你要复制的东西 |
1 | import { Table, Button } from "@alifd/next"; |
实际上核心代码就这几行
1 | const htmlString = '' // 这里就是你要复制的东西 |
Flutter 3.0首次运行时卡在"Running Gradle task assembleDebug"的解决办法
找到flutter sdk路径下的这个文件
flutter/packages/flutter_tools/gradle/flutter.gradle
打开,并找到这个位置
1 | buildscript { |
注释掉 google()
和 mavenCentral()
,并更改为
1 | buildscript { |
找到当前工程路径下的这个文件
/android/build.gradle
和第一步一样,打开,并注释掉 google()
和 mavenCentral()
并更改
注意第二步有两处,所以要改两个地方
还是这个文件
/android/build.gradle
找到DEFAULT_MAVEN_HOST
并替换为国内的镜像地址
1 | class FlutterPlugin implements Plugin<Project> { |
基本上完成上面这三步,就可以运行如下命令尝试再次启动了
1 | flutter clean |
1 | flutter run |
什么?你还不行啊。。。我倒,接着往下看吧,真没想到你这么倒霉
有可能是第三步的镜像地址挂了,可以把第三步再改回来,咱们改host
打开这个网站 https://tool.chinaz.com/speedtest/storage.googleapis.com
获取你的能访问到的加速ip地址,改hosts
有好多个呢,你自己试试吧
1 | # localhost name resolution is handled within DNS itself. |
再试试咯,不行就往下走
1 | flutter clean |
1 | flutter run |
到这基本上宣告你的gradle是死活下载不下来了,只能离线下载了,找到工程目录下的这个文件打开,找到里面的distributionUrl
/android/gradle/wrapper/gradle-wrapper.properties
1 | ... |
你看啊,我这里是gradle-7.5-all.zip
那就去访问gradle的离线下载网站吧,找到gradle-7.5-all.zip
并且下载下来
https://services.gradle.org/distributions/
然后去系统的gradle存放目录替换掉死活下载不下来的那些东西
例如我是C:\Users\vear\.gradle\wrapper\dists\gradle-7.5-all\6qsw290k5lz422uaf8jf6m7co\gradle-7.5-all.zip
那就把C:\Users\vear\.gradle\wrapper\dists\gradle-7.5-all\6qsw290k5lz422uaf8jf6m7co
下面的东西全删了
把新下载的gradle-7.5-all.zip
拷贝进去
再回来试试咯,反正我是行了,你不行就只能另请高明了
1 | flutter clean |
1 | flutter run |
1 |
|
1 | function request(option = { |
1 | // get请求 |
非常的好用!
1 | function fileToBase64(file, callback) { |
竟然还有童鞋不知道咋上传文件,下面封装了一下,直接调用pickerFileBase64这个函数就可以选取文件并且得到base64字符串了
1 | function pickerFileBase64() { |
下载base64字符串文件也是非常简单的,直接调用就完事了
1 | function downloadBase64File(base64,name){ |
输入这样一个数组
1 | [ |
要求经过处理得到这样一个结果, 也就是 2x2 = 4个
1 | [ |
或者这个数组
1 | [ |
要求经过处理得到这样一个结果, 也就是 2x2x3 = 12个
1 | [ |
代码也很简单,没啥难度,只是做一下记录
1 | let arr = [ |
一看哇,着很简单啊,刷刷刷开始写代码
1 | import React, { useEffect, useState } from "react"; |
一顿操作猛如虎,运行一看就咋回事跑成这个鬼样子呢?
怎么没正常显示呢
写一个useInterval的hooks,这样时间就正常显示了
1 | import React, { useEffect, useState, useRef } from "react"; |
Nest 操作 Mongodb 官方文档:https://docs.nestjs.com/techniques/mongodb
1 | npm install --save @nestjs/mongoose mongoose |
在 app.module.ts 中配置数据库连接
1 | import { Module } from '@nestjs/common'; |
1 | import * as mongoose from 'mongoose'; |
1 | import { Module } from '@nestjs/common'; |
1 | import { Injectable } from '@nestjs/common'; |
有如下一个数据,但它是用数组存放的具有联级关系的数据,需要将其转化为适合UI库的数据结构树状结构
1 | const data = [ |
1 | [ |
使用String.prototype.split()
将字符串切分为数组,方便分级
1 | [ |
简单点的就是死办法,看数据貌似只有4级,所以套四重循环就可以解决
但是这样真的很蠢,很笨,一旦数据发生变化,这就白写了
按照思路来先把数组中的字符串进行切分
1 | const treeArr = [] |
观察切分好的数据结构,有的是只有一级,没有子级的,有的呢,可能有四级也可能有三级。这样就对分级存放数据结构带来了很大的困扰。
这样就需要对每一条数据进行判断,这个判断的过程就抽出来写成一个函数就行了。
1 | const treeArr = [] |
这个函数接收3个传参
judgeData
函数负责对传进来的每一条原始的字符串切分数组,进行判断,如果符合要求就push
,不符合要求就递归判断,关键是递归的思想
1 | const judgeData = (treeArr, eleArr, step) => { |
treeArr
传入的并不是预先在最开始设置的那个treeArr,而是每次存放预期数据结构的数组,因为js的对象是引用类型的所以,从对象上拆children下来传进去,并不影响存值,而step则是为了记录分级的层级,避免不知道到哪一步了,乱分。
这里贴上完整代码
1 | const data = [ |