created() { this.qiehuan = localStorage.getItem('qiehuan'); if(this.qiehuan === false){ this.buttonText='切换'; }else{ this.buttonText='还原'; } }, this.qiehuan是false,为什么显示还原
时间: 2024-04-07 22:30:13 浏览: 68
根据你提供的代码,`this.qiehuan`是从`localStorage`中获取的值,而JavaScript中`localStorage`存储的值都是字符串类型。所以无论你存储的是布尔值 `false` 还是字符串 `'false'`,在从`localStorage`获取时都会作为字符串类型返回。
因此,你需要将获取的值转换为布尔类型进行判断。可以使用以下方式:
```javascript
created() {
this.qiehuan = localStorage.getItem('qiehuan');
if (this.qiehuan === 'false') { // 将字符串 'false' 转换为布尔类型
this.buttonText = '切换';
} else {
this.buttonText = '还原';
}
},
```
通过将字符串 'false' 转换为布尔类型后,判断条件就会正确执行,按钮名称会显示为“切换”。
相关问题
解释这段代码 getaddress: function() { wx.showNavigationBarLoading() var that = this api.get(addressList).then((res) => { that.setData({ addressList: res.Data }) wx.hideNavigationBarLoading() }) }, qiehuan: function(e) { var that = this api.post(addressdefault + '?addressId=' + e.currentTarget.dataset.id, {}).then((res) => { if (res.Code == 200) { that.getaddress() } }) }, goEdit: function(e) { let obj = JSON.stringify(e.currentTarget.dataset.item) wx.navigateTo({ url: '/pages/address-edit/address-edit?item=' + obj }); },
这段代码是一个小程序中的一些函数定义,具体功能如下:
1. `getaddress` 函数:该函数用于获取用户地址列表。在函数中,调用了 `wx.showNavigationBarLoading()` 方法显示导航栏加载动画,接着调用了 `api.get(addressList)` 方法获取地址列表数据。当数据获取成功后,将获取到的数据设置到页面的 `addressList` 变量中,并使用 `wx.hideNavigationBarLoading()` 方法隐藏导航栏加载动画。
2. `qiehuan` 函数:该函数用于切换用户默认地址。在函数中,首先获取到要切换的地址的 ID,然后调用了 `api.post(addressdefault + '?addressId=' + e.currentTarget.dataset.id, {})` 方法将该地址设置为默认地址。当设置成功后,调用 `that.getaddress()` 方法重新获取地址列表数据。
3. `goEdit` 函数:该函数用于跳转到地址编辑页面。在函数中,首先获取到要编辑的地址数据,并将其转换为 JSON 字符串。接着调用了 `wx.navigateTo` 方法跳转到地址编辑页面,并将地址数据作为参数传递给该页面。
需要注意的是,在这些函数中,都使用了 `var that = this` 将 `this` 对象赋值给了 `that` 变量,这是为了在 Promise 的回调函数中能够访问到页面的 `this` 对象,因为在回调函数中,`this` 对象的作用域会发生变化。
//用状态机判断按键模式的状态 module breath_led( input flag_qiehuan, input flag_zanting, input [3:0]move_left, input [3:0]move_right, input [3:0]breath, input clk, input rst_n, output reg [3:0]led, output wire stop ); reg[2:0] state; reg [2:0] temp; always @(posedge clk or negedge rst_n) begin if (rst_n==0) begin led<=4'd0; state<=0; temp <= 3'd0; end else case(state) 3'd0:begin if(flag_qiehuan==0) state<=3'd1; else if(flag_zanting==0) begin state<=3'd3; led<=led; temp <= 3'd0; end else begin state<=3'd0; led<=move_left; end end 3'd1:begin if(flag_qiehuan==0) state<=3'd2; else if(flag_zanting==0) begin state<=3'd3; led<=led; temp <= 3'd1; end else if(flag_zanting==0) begin state<=3'd3; led<=led; end else begin state<=3'd1; led<=move_right; end end 3'd2:begin if(flag_qiehuan==0) state<=3'd0; else if(flag_zanting==0) begin state<=3'd3; led<=led; temp <= 3'd2; end else begin state<=3'd2; led<=breath; end end 3'd3:begin if(flag_zanting==0) state<=temp; else state<=3; end endcase end assign stop = (state == 3'd3) ? 1'b1 : 1'b0; endmodule解释一下代码的意思
这是一个 Verilog HDL 的模块,实现了一个状态机来判断按键模式的状态。具体来说:
- 输入:flag_qiehuan、flag_zanting、move_left、move_right、breath、clk、rst_n。其中,flag_qiehuan表示“切换”按钮是否按下,flag_zanting表示“暂停”按钮是否按下,move_left、move_right、breath是三种不同的LED灯的闪烁模式,clk是时钟信号,rst_n是异步复位信号。
- 输出:led、stop。其中,led表示当前LED灯的状态,stop表示是否需要停止当前的状态。
代码实现中,使用了三个状态(state):0、1和2,以及一个临时状态(temp),用来判断按键的状态。当rst_n为低电平时,将状态和临时状态都初始化为0,LED灯状态为0。当rst_n为高电平时,根据不同的状态,进行不同的操作。具体来说:
- 当状态为0时,如果“切换”按钮被按下,则切换到状态1;如果“暂停”按钮被按下,则进入临时状态3,LED灯状态保持不变;否则,LED灯状态切换到move_left。
- 当状态为1时,如果“切换”按钮被按下,则切换到状态2;如果“暂停”按钮被按下,则进入临时状态3,LED灯状态保持不变;否则,如果“切换”按钮被按下,则切换到状态2,LED灯状态切换到breath;否则,如果“暂停”按钮被按下,则进入临时状态3,LED灯状态保持不变;否则,LED灯状态切换到move_right。
- 当状态为2时,如果“切换”按钮被按下,则回到状态0;如果“暂停”按钮被按下,则进入临时状态3,LED灯状态保持不变;否则,如果“切换”按钮被按下,则回到状态0,LED灯状态切换到move_left;否则,LED灯状态切换到breath。
- 当状态为3时,如果“暂停”按钮被按下,则回到临时状态中保存的状态;否则,回到状态0。
最后,通过assign语句,判断当前状态是否为3,如果是,则表示需要停止当前状态。
阅读全文