如何将数组的索引传递给reactJs onClick?

时间:2017-07-31 14:24:54

标签: javascript reactjs ecmascript-6 jsx

const Test = ({ inventory }) =>
<div className="row">
    {inventory.map((item, i) =>
        <div className="item" key={"item_" + i}>
            <div className="card hoverable col s3">
                <img onClick={buyItem(i)} src={item.img} alt="" />
                <div className="container center-align">
                    <h4 className="">
                        {item.name}
                    </h4>
                    <p>
                        Price: {item.price}
                    </p>
                    <p>
                        Average price paid: {item.averageDisplay}
                    </p>
                    <p>
                        Amount owned: {item.owned}
                    </p>
                    <button
                        className="btn"
                        data={item.index}
                        onClick={sellItem(i)}
                        name="button"
                    >
                        Sell
                    </button>
                </div>
            </div>
        </div>
    )}
</div>;

ReactDOM.render(<Test inventory{inventory}/>, 
document.getElementById("container")
);

inventory是一个对象数组,在这个例子中我已经成功地循环了,但由于某种原因,我无法弄清楚如何将i的值传递给函数,尽管它&已经被用来生成唯一密钥。

2 个答案:

答案 0 :(得分:1)

您需要创建一个新功能

onClick={() => sellItem(i)}

答案 1 :(得分:0)

通过创建函数调用

来使用它
onClick={(event) => buyItem(event, i)}