javascript - 在 onClickEvent 上将值传递给 ReactJs 中的另一个组件不起作用

标签 javascript reactjs

我将值传递给另一个组件 onclickEvent,但值不会传递给另一个组件并显示空引用。

我有两个组件,它们是 DriverCards 和 DriverPendingOrders。我想将 orderId 的值从 DriverCards 传递到 DriverPendingOrders。

下面是我的两个工作组件。

这是 DriverCard 组件

import React, { Component } from 'react';
import { connect } from "react-redux";
import PropTypes from "prop-types";

export default class DriverCard extends Component{

    constructor(props) {
        super(props);
    } 

    render(){

        let { OrderID,CID,DeliveryEst,DeliveryInstructions,DriverID,Orders,PrepInsruction,RID,Status,Total } = this.props.indOrder;

        return(

            <div class="container">
                <div class="card" style={{width:'100%',borderRadius:'2%', border: '4px solid lightgreen'}}>
                    <div class="card-body" style={{textAlign:'center'}}>
                        <h4 class="card-title">{CID}</h4>
                        <p class="card-text"><h5>{RID}</h5></p>
                        {/* <p class="card-text"><small class="text-muted">Last updated 3 mins ago</small></p> */}

                        <button type="button" onClick={() => {this.props.removeOrder(OrderID);this.props.showOrder.bind(this,OrderID)}}class="btn btn-success btn-sm" style={{width:'50%'}}>Accept</button> 


                        <button type="button" class="btn btn-danger btn-sm" style={{width:'50%'}}>Decline</button>
                    </div>
                </div>
            </div>
        )
    }
}

下面是 DriverPendingOrder 组件,我想在其中获取从 DriverCard 传递的 orderID。

import React, { Component } from 'react'
import { connect } from "react-redux";
import PropTypes from "prop-types";
import DriverPendingCard from './DriverPendingCard';


export class DriverPendingOrders extends Component{

    constructor() {
        super();
        this.state = {
            Orderslist: [
              {
                  OrderID:parseInt("001"),
                CID:123,
                DeliveryEst:"",
                DeliveryInstructions:"Door",
                DriverID:"",
                Orders:"ABC",
                PrepInsruction:"Mild",
                RID:"A",
                Status:"",
                Total:""

              },
              {   
                  OrderID:parseInt("002"),
                  CID:456,
                  DeliveryEst:"",
                  DeliveryInstructions:"Front Door",
                  DriverID:"",
                  Orders:"BCD",
                  PrepInsruction:"Medium",
                  RID:"B",
                  Status:"",
                  Total:""
              },
              {
                  OrderID:parseInt("003"),
                  CID:678,
                  DeliveryEst:"",
                  DeliveryInstructions:"Gate",
                  DriverID:"",
                  Orders:"DEF",
                  PrepInsruction:"Spicy",
                  RID:"C",
                  Status:"",
                  Total:""
              }
            ]
          }

    }
      showOrder(OrderID) {



        this.setState({ Orderslist: this.state.Orderslist.filter(order=> order.OrderID == OrderID)});

      }
    render(){
        let dCard1 = this.state.Orderslist.map(order => {
            return (
              <DriverPendingCard key={order.OrderID} showOrder={this.showOrder.bind(this)} inOrder1={order}/>

            )
          })

        return(

            <div>
                <ul class="list-group">

                    {dCard1}

                </ul>
            </div>
        )
    }
}

export default DriverPendingOrders;

最佳答案

试试看

DriverCard:

<button onClick={this.add}>Add</button>
...
...
  add = () => {
    this.props.passId(id);
}

DriverPendingOrder:

 import { DriverCard } from "../DriverCard";
   ...
   ...
 <DriverCard passId={this.changedId}/>
    ...
    ...
    changedId = passedId => {
        this.setState({
          id: passedId
        });
      };

关于javascript - 在 onClickEvent 上将值传递给 ReactJs 中的另一个组件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55447167/

相关文章:

javascript - 如果单击按钮,如何重置计数器

javascript - CompositeView 和 ItemView,如何处理两个 View 和模板?

javascript - 如何计算 localStorage 中的特定 ID?

javascript - React.createElement : type should not be null, undefined, boolean, or number 错误

javascript - 很好地格式化网格

php - <a href="#!/home> 有什么用?

javascript - 如何将嵌入/嵌套的 FormGroup 转换为 FormData

javascript - 需要/首选事件捕获的真实世界示例?

javascript - 如何将事件对象传递给 React 事件处理函数?

reactjs - 在 react 中的功能组件内编写功能