react 如何修改父组件传的值
时间: 2023-09-22 11:10:11 浏览: 92
在React中,如果想要修改父组件传递给子组件的值,可以通过在子组件中触发回调函数并传递修改后的值给父组件来实现。在提供的代码中,父组件是Filter,子组件是FilterTitle。以下是一个示例代码,展示如何在子组件中修改父组件传递的值:
1. 首先,在父组件Filter中定义一个修改状态的方法,例如`handleTitleClick`:
```javascript
handleTitleClick = (type) => {
// 在这里对titleSelectedStatus进行修改
// 比如将对应type的值设置为true或false
// 最后使用setState更新state
this.setState((prevState) => ({
titleSelectedStatus: {
...prevState.titleSelectedStatus,
[type]: !prevState.titleSelectedStatus[type],
},
}));
};
```
2. 将这个方法传递给子组件FilterTitle,作为props的一个属性:
```javascript
<FilterTitle titleSelectedStatus={titleSelectedStatus} onClick={this.handleTitleClick} />
```
3. 在子组件FilterTitle中,当点击某个标题时,调用传递过来的`onClick`方法,并传递对应的type:
```javascript
onClick = (type) => {
this.props.onClick(type);
};
```
这样,当在子组件FilterTitle中点击标题时,会调用父组件Filter中的`handleTitleClick`方法,从而修改父组件的状态值titleSelectedStatus。<span class="em">1</span><span class="em">2</span>
#### 引用[.reference_title]
- *1* *2* [react--子组件更改父组件的值(状态)](https://blog.csdn.net/weixin_43131046/article/details/120849530)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文