小编Dan*_*yar的帖子

dart中的clamp函数的逻辑是什么?

int、double、num 等数值类具有钳位功能。我尝试了一下并得到了一些结果..我猜它有一个类似的逻辑

a = math.max(-1, math.min(1, a));
Run Code Online (Sandbox Code Playgroud)

但是当我打印这段代码时,我得到了奇怪的结果

print(-100.43.clamp(-400.2, 64.2)); // -64.2
Run Code Online (Sandbox Code Playgroud)

dart的clamp函数的算法是怎样的?

dart flutter

8
推荐指数
1
解决办法
6720
查看次数

bool.fromEnvironment 总是返回 false

这是一个代码:

const bool a = const bool.fromEnvironment("true");
print(a); // false
Run Code Online (Sandbox Code Playgroud)

是的,默认值为 false。a在不使用默认值的情况下我应该怎么做?那么字符串参数是什么?也许是一把钥匙?

dart flutter

4
推荐指数
1
解决办法
2891
查看次数

reportProgress 在生产中不起作用

当我上传视频文件时,它在本地(开发模式)下正常工作。但是当我将其上传到服务器(产品)时,它不起作用。
这是服务:

uploadVideo(id: String, file, imageId) {
        let formData = new FormData();
        formData.append('video', file);
        formData.append('imageId', imageId);
        return this.http.post<any>(`.../${id}/video`, formData, {reportProgress: true, observe: 'events'})
                .pipe(map(response => {
                        return response;
                }));
    }
Run Code Online (Sandbox Code Playgroud)

这是组件 ->

this.arrivalProductService.uploadVideo(this.data.id, this.selectedFile, imageId)
      .pipe(
        map((event) => {
          console.log('event', event);
          if(event.type === HttpEventType.UploadProgress){
            const percentDone = Math.round(100 * event.loaded / event.total);
            return { status: 'progress', message: percentDone };
          }
          if (event.type === HttpEventType.Response) {
            return event.body;
          }
        }),
        catchError(error => {
          return throwError(error);
        }),
        finalize(() => {
          console.log('completed');
        }) …
Run Code Online (Sandbox Code Playgroud)

production file-upload progress-bar typescript angular

1
推荐指数
1
解决办法
2047
查看次数

getter 不会更新 Vuex 中的值

我不明白 getter 在 Vuex 中是如何工作的。问题是当在 state 中注销令牌并且 localStorage 变空时,但在 getters 中则不然。在created我称之为:

created: async function () {
    if (this.$store.getters.shortToken) {
      this.isConfirm = true
    }
    console.log(
      'signining', localStorage.getItem('token'), // ''
      'state', this.$store.state.user.token, // ''
      'getter', this.$store.getters.token // 'old-token'
    )
    if (this.$store.getters.token) {
      await this.$router.push({ path: '/' })
    }
  }
Run Code Online (Sandbox Code Playgroud)

并且getters有:

token: state => {
    return localStorage.getItem('token') || state.user.token
  }
Run Code Online (Sandbox Code Playgroud)

mutation

SET_TOKEN: (state, payload) => {
      localStorage.setItem('token', payload.token)
      Object.assign(state, payload)
    }
Run Code Online (Sandbox Code Playgroud)

但是,创建的控制台登录给了我空的 localStorage 令牌(这是正常的)和空的 state.token …

javascript router vue.js vuex

1
推荐指数
1
解决办法
1850
查看次数

如何使用map或foreach通过奇数,偶数索引将2个数组合并为一个

我有 2 个数组:

var keys = Object.keys(item); // [first, second, third, forth]
var values = Object.values(item); // [fifth, sixth, seventh, eighth]
let newArray = [];
Run Code Online (Sandbox Code Playgroud)

输出应该是:

[first, fifth, second, sixth, third, seventh, forth, eighth]
Run Code Online (Sandbox Code Playgroud)

是否可以不使用任何 while 循环,例如for i in itemfor i = 0;i <= item.length; i++ ..
只需使用地图、拼接等。

javascript arrays functional-programming

0
推荐指数
1
解决办法
301
查看次数