首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从react映射组件更新状态

如何从react映射组件更新状态
EN

Stack Overflow用户
提问于 2021-07-05 22:26:27
回答 2查看 38关注 0票数 0

我有一个api,我想用它来过滤数据并将filterd放入一个状态

代码语言:javascript
运行
复制
export default class ModifyPage_Single extends React.Component {
    constructor(props) {
        super(props)
        this.state = {data:[],idd:""}
      }

      componentWillMount() {
        fetch("removed api")
        .then(response => response.json())
        .then((data) =>{
          this.setState({data:data})
        })
    }

    render() {

        const test = this.state.data.map((e) =>  {   if(e.ID === this.props.location.productdetailProps.productdetail)  {this.setState({idd:e.PP})}     })

但是我一直收到这样的错误:未处理的拒绝(错误):超过最大更新深度。当组件在componentWillUpdate或componentDidUpdate中重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量,以防止无限循环。

我如何解决才能使fitered out api进入状态?

提前感谢

EN

Stack Overflow用户

发布于 2021-07-05 22:37:30

你可以在生命周期方法中更新状态,在render中更新它是反模式的

代码语言:javascript
运行
复制
componentDidMount() {
        fetch("removed api")
        .then(response => response.json())
        .then((data) =>{
          this.setState({data:data})
          const iddObj = data.find((el) => el.ID === this.props.location.productdetailProps.productdetail)
          if(iddObj ){
 this.setState({idd:iddObj.PP})
}        
        })
    }
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68257801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档