账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何将兄弟组件的props传递给本组件的请求,并解决本组件内遍历请求的异步问题并将请求结果传给子组件?
    55
    0
    componentDidUpdate(){
        let arran=this.props.shipmmsi;
        this.kick=arran;
        this.getshipteamtemporaryDataServer()
    }
    getshipteamtemporaryDataServer=()=>{//在didupdate周期内被调用
        let shipmmsiarr=this.kick
        var arr=[];
    for(var i in shipmmsiarr){
    // 使用立即执行函数直接执行,解决异步行为的最佳方法
        ((kick)=>{
        Server.getshipteamtemporaryData({MMSI:kick},(data)=>{
        arr.push(data);
        // this.setState({//加入setState就会无限循环
        // shipteampos:arr
        // })
        })
        })(shipmmsiarr[i])
    }
    console.log(arr)
    
    }
    

    其中兄弟组件的props.shipmmsi是通过dispatch注入的,在本组件中通过redux的connect方法获取,但是在render渲染的时候,会渲染两次,第一次渲染时shipmmsi为undefined,之后才会获得注入后的shipmmsi。componentdidmount中获取的props为空数组,怎么解决didmount周期里props获取不到的问题?。尝试两天了还没有解决完。有点懵逼

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • —半世づ微暖゜ 普通会员 1楼

      在React中,我们可以使用state来管理组件的状态,然后使用生命周期方法来处理状态的变化。在这个问题中,我们可以创建一个状态来存储兄弟组件的props,然后在子组件中调用这个状态来获取props。

      首先,我们需要在父组件中创建一个状态来存储兄弟组件的props:

      ```jsx // 父组件 import React from 'react'; import ChildComponent from './ChildComponent';

      function ParentComponent() { const [props, setProps] = React.useState([]);

      return (

      ); }

      export default ParentComponent; ```

      然后,我们需要在子组件中使用这个状态来获取props:

      ```jsx // 子组件 import React from 'react';

      function ChildComponent(props) { return (

      {props.name}

      {props.age}

      ); }

      export default ChildComponent; ```

      在子组件中,我们可以使用React的map函数来遍历props并将其传递给子组件:

      ```jsx // 子组件 import React from 'react';

      function ChildComponent(props) { return (

      {props.name}

      {props.age}

      ); }

      export default ChildComponent; ```

      在这个例子中,我们创建了一个名为props的状态,它包含了兄弟组件的props。然后,我们在子组件中遍历这个状态并将其传递给子组件。

      最后,我们可以在父组件中调用这个状态来获取props:

      ```jsx // 父组件 import React from 'react'; import ChildComponent from './ChildComponent';

      function ParentComponent() { const [props, setProps] = React.useState([]);

      return (

      ); }

      export default ParentComponent; ```

      这样,我们就成功地将兄弟组件的props传递给了本组件,并解决了本组件内遍历请求的异步问题并将请求结果传给子组件。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部