reactjs - 如何在 Map Function React 或 react-native 中禁用特定的 TextInput 字段
问题描述
如果选择器已交付和拒绝,我想禁用特定的 TextInput,并且想要在待处理和完成时使用 TextInput(editable)
const [arrayList, setArraylist]= [
{id:0, name:'A', DeliveredQuantity:7},
{id:1, name:'B', DeliveredQuantity:9},
{id:2, name:'C', DeliveredQuantity:11},
{id:3, name:'D', DeliveredQuantity:30},
]
const [isEditable,setisEditable]=useState(true)
const updateStatus= (key,value)=>
setisEditable(false)
}
{
arrayList.map((items,index)=>{
return
<View>
<TextField editable={isEditable} value={items.DeliveredQuantity} />
<Picker mode="dropdown" selectedValue={selectedStatus}
onValueChange={(value)=>updateStatus(index,value)} >
<Picker.Item label='Pending' value='1' />
<Picker.Item label='Delivered' value='2' />
<Picker.Item label='Completed' value='3' />
<Picker.Item label='Returned' value='4' />
</Picker>
}
}
解决方案
根据您的要求,这是一个更新的答案。
const [arrayList, setArraylist]= [
{id:0, name:'A', DeliveredQuantity:7},
{id:1, name:'B', DeliveredQuantity:9},
{id:2, name:'C', DeliveredQuantity:11},
{id:3, name:'D', DeliveredQuantity:30},
]
const [isEditable,setisEditable]=useState(true)
const updateStatus= (key,value)=>
//if delivered or rejected
(value === 2 || value ===4) && setisEditable(false)
}
{
arrayList.map((items,index)=>{
return
<View>
<TextField editable={isEditable} value={items.DeliveredQuantity} />
<Picker mode="dropdown" selectedValue={selectedStatus}
onValueChange={(value)=>updateStatus(index,value)} >
<Picker.Item label='Pending' value='1' />
<Picker.Item label='Delivered' value='2' />
<Picker.Item label='Completed' value='3' />
<Picker.Item label='Returned' value='4' />
</Picker>
}
}
推荐阅读
- sql - 获取由查询引起的数据更改事件的 DML 查询
- ios - 如何使用 swift 4 从数据中使用 Alamofire 多部分发送参数数组
- javascript - 使用 JS 在动态生成的表格中添加按钮
- java - Gson解析具有未知字段的多个数组
- arrays - 将字节数组写入 Excel VBA 中的范围而不循环
- php - php 中的 SELECT 查询:响应太迟
- r - 将原子向量转换为绘图数据框
- c++ - 如何为不同文件夹中的多个 .cpp 文件和头文件编写 Cmake?
- python - 如何使用 pymongo 编辑 mongoDB 中的数据
- java - 如何在@PostMapping 中注入单个 json 参数值