jd-opensource / jd-opensource/taro-ui

咨询一下:SwipeAction组件里面嵌套 Input组件的问题

Open
#1,111 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
4.7k
Forks
740
PR merge metrics
No merged PRs in 30d

Description

**问题描述**

嵌套Input的时候,左滑删除Input ,从效果上面看删除的总是最后一个Input
**复现步骤**

```js
// 这里可以贴代码

//state:
state = {
selectedGrantMonth: 1,
serialNumbers: [],
};

//render:

const { serialNumbers } = this.state;

{serialNumbers.map((item, index) => (



))}
//-- 滑动方法
actionClick = (itemIndex, e) => {
const { serialNumbers } = this.state;
if ("1" === e.action) {
// 删除
const filterSerialNumbers = serialNumbers.filter((item, index) => {
return item.index != itemIndex;
});
this.setState({ serialNumbers: [...filterSerialNumbers] });
}
};
// -- input onChange
inputChange = (index, e) => {
const { serialNumbers } = this.state;
const newSerialNumbers = serialNumbers.map((item) => {
if (item.index === index) {
return { index: item.index, value: e };
} else {
return item;
}
});
this.setState({ serialNumbers: newSerialNumbers });
};
```

**期望行为**

**报错信息**

**系统信息**

![image](https://user-images.githubusercontent.com/45417524/86197140-5b011c80-bb87-11ea-8c22-70baf3351f66.png)
![image](https://user-images.githubusercontent.com/45417524/86197148-5e94a380-bb87-11ea-842e-a0b1f1d2c967.png)
![image](https://user-images.githubusercontent.com/45417524/86197151-605e6700-bb87-11ea-9cfc-309935582f5d.png)

**补充信息**

当我把option属性放到 组件外部定义 就没有这个问题但是滑动多次就会卡死 滑动无效。
我想了解一下为什么放在面外定义就没问题呢? 跟this有关系吗?
```js
const ACTION_OPTION = [
{
text: "取消",
action: "0",
},
{
text: "删除",
action: "1",
style: {
backgroundColor: "#FF4949",
},
},
];

{serialNumbers.map((item, index) => (



))}
```
![image](https://user-images.githubusercontent.com/45417524/86197506-1f1a8700-bb88-11ea-80ca-2b2954561cf7.png)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.