cart
コンストラクタ内の値を動的に設定したいと思います。私のcart
変数は価格、アイテムを持っています。サイズの値。どの項目がクリックされたのかを動的にitem
に割り当てる必要があります。これは私のコードです:Reactコンポーネントのdivから値を読み込む方法は?
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { addCart } from '../../actions';
import { withRouter } from 'react-router';
//import { Cart } from './webcart';
import CamoHat from './camodye.jpeg';
import TonyTape from './TonyTape.png';
import RegularHat from './regularhat.jpg';
import JaguarShirt from './JAGUARLOGO.png';
import SeltzShirt from './seltzshirt.jpg';
import NocHoodie from './NOCNOCHOODIE.png';
export class WebShop extends Component {
constructor(props){
super(props);
this.state = {value: 'medium', cartData: {} };
this.handleClick = this.handleClick.bind(this);
this.change = this.change.bind(this);
this.goProductPage = this.goProductPage.bind(this);
this.goProductPage2 = this.goProductPage2.bind(this);
this.goProductPage3 = this.goProductPage3.bind(this);
}
handleClick() {
let cart = {price:0,item:"userselection",size:this.state.value};
this.props.onCartAdd(cart);
this.itemSelection(cart);
}
change(e){
this.setState({value: e.target.value})
}
itemSelection(cart){
let userItem = cart;
let userSelection = cart
if (userItem == "shirt1") {
let itemPrice = 20.00;
}
}
...
render() {
return (
<div className='Webshop' id='Webshop'>
<ul id="Productlist">
<div className='Product'>
<img src={CamoHat} onClick={this.goProductPage}></img>
<div id='infoname'>NOC NOC HAT (CAMO)</div>
<div id='infoprice'>40.00</div>
</div>
<div className='Product'>
<img src={JaguarShirt} onClick={this.goProductPage2}></img>
<div id='infoname'>JAGUAR PYRAMIDS T-SHIRT</div>
<div id='infoprice'>25.00</div>
</div>
<div className='Product'>
<img src={SeltzShirt} onClick={this.goProductPage3}></img>
<div id='infoname'>JAGUAR PYRAMIDS T-SHIRT</div>
<div id='infoprice'>25.00</div>
</div>
<div className='Product'>
<img src={NocHoodie} onClick={this.goProductPage}></img>
<div id='infoname'>JAGUAR PYRAMIDS T-SHIRT</div>
<div id='infoprice'>25.00</div>
</div>
<div className='Product'>
<img src={RegularHat}></img>
<button onClick={this.handleClick} className="addit">Add to cart</button>
<select id="size" onChange={this.change} value={this.state.value}>
<option value="medium">Medium</option>
<option value="large">Large</option>
<option value="x-large">X-large</option>
</select>
</div>
<div className='Product'>
<img src={TonyTape}></img>
<button onClick={this.handleClick} className="addit">Add to cart</button>
<select id="size" onChange={this.change} value={this.state.value}>
<option value="medium">Medium</option>
<option value="large">Large</option>
<option value="x-large">X-large</option>
</select>
</div>
</ul>
</div>
);
}
}
...
export default connect(mapStateToProps,mapDispatchToProps)(WebShop);
私は元のためのアイテムdiv id=infoname
(テキスト自体)以内に商品の説明を使用してcart
でitem
値を割り当てる:NOC NOC Hat
。どのように私の機能の中でこれを行うことができますか?それを行うより良い方法はありますか?
ここで何が尋ねられているのか不明です。なぜ 'カート 'はコンポーネントの'状態 'のプロパティではないのですか? 'itemSelection'メソッドは何をしますか?いくつかの変数に値を割り当てますが、何もしません。 – glhrmv
'Cart'は状態にあると思いますが、私はちょうどそれを書いて動作します。ここではdivから値を取得する必要があるので、' itemSelection'メソッドを書き終わっていません。私が望むのは、カートに追加するときに項目名を取得し、その名前を 'cart'の' item'値に割り当てます。 @dogui – feners
1)同じidを複数回使用しないでください。 2)各divは製品を表しているので、[data- *属性を使用する](https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes)はなぜですか? 'id'属性と違って、それらの中にスペースを入れることができます。 – glhrmv