<view class="feedback_content"> <textarea class="feedback_input" bindinput="textInput" v-bind:value="textVal" placeholder="请输入您的反馈内容(200字以内)" maxlength="200"></textarea> <view class="feedback_tool"> <button @click="chooseImg">+</button> <view class="up_img_item" v-for="(img, index) in chooseImgs" :key="index" @click="removeImg(index)" v-bind:data-index="index"> <UpImg v-bind:src="item"></UpImg> </view> </view> </view> chooseImg() { // 调用uni-app内置的选择图片api uni.chooseImage({ count: 3, // 同时选中的图片数量 sizeType: ['original', 'compressed'], // 图片的格式:原图、压缩 sourceType: ['ablum' ,'camera'], // 图片的来源:相册、手机拍照 success: (res) => { this.chooseImgs = this.chooseImgs.concat(res.tempFilePaths); // 将选择的图片路径拼接到chooseImgs数组中 } }); }, removeImg(index) { // 获取data中的图片数组 let chooseImgs = this.chooseImgs; // 删除元素 chooseImgs.splice(index, 1); this.chooseImgs = chooseImgs; }这个函数为什么不能讲打开的图片在页面中显示
时间: 2024-02-10 08:25:25 浏览: 109
根据你提供的代码,我发现在`chooseImg`函数中,你将选择的图片路径拼接到`chooseImgs`数组中。然而,在模板中显示图片时,你使用了错误的变量名`item`,应该使用`img`来引用循环遍历的图片路径。
请将以下代码中的`item`替换为`img`:
```html
<view class="up_img_item" v-for="(img, index) in chooseImgs" :key="index" @click="removeImg(index)" v-bind:data-index="index">
<UpImg v-bind:src="img"></UpImg>
</view>
```
修改后的代码应该可以将选择的图片在页面中正确显示了。
如果问题仍然存在,请提供更多相关的代码片段或说明,以便我能够更好地帮助你解决问题。
相关问题
<textarea class="feedback_input" bindinput="textInput" v-bind:value="textVal" placeholder="请输入您的反馈内容(200字以内)" maxlength="200"></textarea> textInput() { console.log(this.textVal) }为什么控制台显示的是这个Do not have textInput handler in component: packages/feedback/feedback. Please make sure that textInput handler has been defined in packages/feedback/feedback.
根据你提供的代码,出现错误信息 "Do not have textInput handler in component: packages/feedback/feedback. Please make sure that textInput handler has been defined in packages/feedback/feedback." 可能是因为你在组件中没有正确定义 `textInput` 处理程序。
根据你提供的代码片段,我注意到你使用了 `bindinput` 属性来绑定 `textInput` 方法。然而,根据错误信息来看,似乎 `textInput` 方法没有在组件中正确定义。
请确保你在组件中正确定义了 `textInput` 方法并将其绑定到 `bindinput` 属性。例如,在 Vue.js 中你可以这样定义和绑定方法:
```javascript
methods: {
textInput() {
console.log(this.textVal);
}
}
```
确保 `textInput` 方法在组件的 `methods` 对象中正确定义,并确保组件中存在一个名为 `textVal` 的 data 属性。另外,也要确保你的代码中没有其他地方重复定义了 `textInput` 方法。
如果问题仍然存在,请提供更多关于组件的代码细节,以便我们能够更好地理解问题并给出更具体的解决方案。
van-field textarea placeholder 换行
在Van-Field中,TextArea组件的placeholder属性是用来提供输入框的提示文本。要实现换行,可以使用换行符"\n"来分隔多行文本。
例如,如果要将placeholder的文本分为两行,可以这样写:
```vue
<template>
<div>
<van-field v-model="textareaValue">
<template #input="{ attrs, events }">
<textarea
class="van-field__control"
v-bind="attrs"
v-on="events"
:placeholder="placeholderText"
></textarea>
</template>
</van-field>
</div>
</template>
<script>
export default {
data() {
return {
placeholderText: '第一行\n第二行',
textareaValue: ''
};
}
};
</script>
```
在上述代码中,我们将placeholderText设置为"第一行\n第二行"。当用户在输入框中没有输入内容时,就会显示这个文字,并且会自动换行为两行。当然,你也可以添加更多的换行符来调整文本的布局。
阅读全文