在一个名为room的常量中有一个数组对象值.

room = [
    {name: "buger", placeId: 252}
    {name: "pack", placeId: 253}
    {name: "apple", placeId: 254}
    {name: "peach", placeId: 255}
]

此时,每当我在TextInput中写入字符时,我想使用onChangeroom函数来更改文件室中name的值.

因此,当我在onChangeRoom函数中运行setRoom并附加["name"]时,出现了一个意外的令牌错误.

如何更改代码以更改房间名称?

下面是我的代码.

const [room, setRoom] = useState(
targetFarm.children.map((v) => ({ name: v.name, placeId: v.placeId }))
)


const onChangeroom = useCallback((index) => (text) => {
    setRoom({ ...room, [index]["name"]: text });      // << this might cause error
}, []);


{targetFarm.children.map((item, index) => {
    return (
<TextInput
style={{ backgroundColor: 'orange' }}
value={room[index]["name"]}
onChangeText={onChangeroom(index)}
/>

...
    )
    }

推荐答案

map函数中可以得到index.在获得索引后,您可以进行更新.

让我举个例子:

const [room, setRoom] = useState([
    ...targetFarm.children
]);

const onChangeroom = useCallback((index, text) => {
    
    setRoom(room.map((pr, i) => {
    if(i === index) {
      return {
        ...pr,        
        name: text
      }
    }
    else return pr;
  }))
}, []);

Javascript相关问答推荐

可以的.是否可以在不预编译的情况下使用嵌套 Select 器?

materialized - activeIndex返回-1

Chart.js V4切换图表中的每个条,同时每个条下有不同的标签.怎么做?

Rehype将hashtag呈现为URL

为什么useState触发具有相同值的呈现

VUE 3捕获错误并呈现另一个组件

在运行时使用Next JS App Router在服务器组件中运行自定义函数

用JS从平面文件构建树形 struct 的JSON

使用Nuxt Apollo在Piniastore 中获取产品细节

Vaadin定制组件-保持对javascrip变量的访问

如何确保预订系统跨不同时区的日期时间处理一致?

每隔3个项目交替显示,然后每1个项目交替显示

select 2-删除js插入的项目将其保留为选项

我的NavLink活动类在REACT-ROUTER-V6中出现问题

TabNavigator和StackNavigator之间的Reaction Native中的导航问题

当达到高度限制时,如何裁剪图像?使用html和css

如何处理不带参数的redux thunk payloadCreator回调函数?

ReactJS在类组件中更新上下文

检测带有委托的元素内部的点击,以及元素何时按其类名被选中

如何将PNG图像放在wix站点的Open Streemap map 上,使PNG图像成为 map 不可分割的一部分?