请巨佬们给我看一个问题第一次写小程序,进入页面调了一个getUserInfo
获取信息接口然后框里的数据全部正确显示出来了,但是我编辑完表单之后formData里还是没有变请问有啥问题吗
<van-field model:value="{{ formData.nickName }}" input-align="right" required clearable label="用户昵称" placeholder="请输入用户名昵称" /><van-field model:value="{{ formData.userName }}" input-align="right" required clearable label="登录账号" placeholder="请输入登录账号" disabled /><van-field model:value="{{ formData.password }}" input-align="right" required clearable label="登录密码" placeholder="请输入登录密码" /><van-field model:value="{{ formData.realName }}" input-align="right" required clearable label="姓名" placeholder="请输入姓名" />Page({ data:{ formData:{} }, getUserInfo(){ ...这里挨个往formData赋值了 }})
看一下小程序语法官网 双向绑定暂不支持a.b这种形式 只支持a,b这种
https://developers.weixin.qq.com/miniprogram/dev/framework/view/two-way-bindings.html
这个问题可能是由于双向数据绑定在小程序中并不直接支持。小程序主要使用单向数据绑定,即从数据源到视图。双向数据绑定,即从视图到数据源的更新,是不被直接支持的。
在你的例子中,你试图通过model:value
属性来绑定表单字段的值到formData
对象。然而,当你在表单中编辑数据时,formData
对象并没有发生改变。这是因为小程序并没有自动跟踪formData
的变化并更新视图。
解决这个问题的一种方式是使用小程序的bind
方法来手动绑定数据。这意味着你需要手动设置每个表单字段的value
值,并在需要的时候更新formData
对象。
例如:
<van-field bind:value="formData.nickName" input-align="right" required clearable label="用户昵称" placeholder="请输入用户名昵称" /><van-field bind:value="formData.userName" input-align="right" required clearable label="登录账号" placeholder="请输入登录账号" disabled /><van-field bind:value="formData.password" input-align="right" required clearable label="登录密码" placeholder="请输入登录密码" /><van-field bind:value="formData.realName" input-align="right" required clearable label="姓名" placeholder="请输入姓名" />
然后在你的Page对象中,你需要处理这些字段的变化:
Page({ data: { formData: {} }, onLoad: function() { this.getUserInfo(); }, getUserInfo() { // ... 这里往formData赋值了 }, onFormChange(e) { // 当表单字段变化时,更新 formData this.setData({ formData: { ...this.data.formData, [e.target.name]: e.detail.value } }); }});
在这个例子中,bind:value
允许你将表单字段的值绑定到formData
对象的相应属性上。当这些值发生变化时,小程序将调用onFormChange
函数来更新formData
对象。
初始值设置为true后,我与切换按钮的双向绑定将被分离。当我取消按钮时,它不再绑定。 我有两个切换按钮: 我希望绑定到的BackupViewModel(实例为BackupVM)中的我的属性: 当一个被切换时,我会显示一个特定的用户控件(视图)并隐藏另一个。我需要做的是告诉我的底层视图模型视图是隐藏的,这样我就可以停止刷新一些数据的计时器。加载IsChecked值后,由于某种原因绑定会被分离。以下是
为什么点击事件函数只能执行一次? const dataArr = [ // 个数添加功能 以上代码我运行的时候,第一次是能执行的,功能也是正常,但是再次点击后没有反应了?也没有报错。 我以为是通过for循环多次绑定事件有问题,但是只对一个标签绑定事件也只能执行一次。 我查询过答案,得到一个类似的答案,说是通过innerHTml实现会让页面重新渲染Dom元素,我的代码也会进行一次数据处理然后重新渲染
并没有出现官方文档的限制的情况,望大佬们指教
之前没问题但有一个弹框样式不能用scoped,所以删了一下,然后不管怎么撤回样式不生效了! 代码:
VUE3 + element-plus,子组件向父组件发送消息(调用父组件函数没有反应),this.$emit方法,请大佬们帮俺看看,谢谢 全部的代码 百度了好久都怎么管用的,刚学不太懂