React将多个参数传递给组件

时间:2018-12-03 07:36:13

标签: reactjs react-native

我的英语不是很好,但是我试图向自己解释清楚。 我在OrderInfo中有两个组件-OrderInfoOrderTopMenu。 我通过2个参数:

<OrderTopMenu args = {this.state.status} args2 = {this.state.user} />

OrderTopMenu 内,我传递了类似下面这样的低谷参数:

`export default class OrderTopMenu extends Component {
       constructor(args, args2) {

       super(args, args2);

        console.log(args)
        console.log(args2)

        this.state = {
          orderInfo: args.orderInfo,
          statuses: [],
          messages: [],
          contacts: [],
          chosenContacts: [],
          files: [],
          chosenFiles: [],
          message: '',
          message_target: '',
          status_id: args.status_id,
          ins_order: args.ins_order,
          ins_type:  args.ins_type,
          lack_claims_status: args.lack_claims_status,
          readonly: true,
          target_to_send: '',
          files_required: false,
          messageChosen: false,
          auth_user: args2,
          policies: {
              comprehensive_policy_number: '',
              compulsory_policy_number: '',
          }
      }

   }

`

第一个参数我是正确的,但是第二个参数我只能在OrderTopMenu上的构造函数中的控制台日志中看到,但是当我尝试在安装组件后在onClick on按钮后在函数内部访问它们时,我不确定。 无法找出问题所在。 谢谢你的建议。

3 个答案:

答案 0 :(得分:1)

您需要将 and after all that order them by descending (by list2) 传递给构造函数,并以propsthis.props.args

的身份访问您的参数
this.props.args2

答案 1 :(得分:1)

您应该从props组件中的OrderTopMenu中提取参数。

您的代码应如下所示:

export default class OrderTopMenu extends Component {
       constructor(props) {

       super(props);

        console.log(props.args)
        console.log(props.args2)
       ......

也可以通过单击按钮,使用propsthis.props访问args。

onButtonClick = () => {
  const {args, args2} = this.props;
  console.log('argument :', args);
  console.log('argument 1:', args1);

}

希望这会有所帮助。快乐编码:)

答案 2 :(得分:1)

组件类的构造函数params只是接收给定JSX道具的道具。 因此,您应该在构造函数中使用道具。 这样。

constructor(props) {
   super(props);
   let {args, args2} = props;

   console.log(args);
   console.log(args2);
}