ユーザーがselectタグオプションをクリックしたときのような問題が発生し、変換ペアが自動的にデータを検索します。 USERがGBPAUDを選択したときにonChange Selectを使用して検索ReactJS
例は
そう尋ねる値は7429.4 が、今私はAUDがvar resultLast
を使用してターンをGBPAUDペアをスライスになります。その後、私はvar conversionPairs = 'USD' + resultLast;
と呼ばれる文字列を作成します。だから私はUSDAUD
を得てそれをコンソール。私の問題は、local.json
で検索フィルタを作成する方法です。USDAUD質問する。
ここに私のコードです。
本当にありがとうございます。
は、あなたのデータが配列であるので、あなたが選択したシンボルに一致するオブジェクトを取得するためにArray.prototype.find
を使用することができ、コード
class PipValueCalculator extends Component {
constructor(props) {
super(props);
this.state = {
selectValue: ''
};
this.selectAccountCurrency = this.selectAccountCurrency.bind(this);
}
componentDidMount() {
fetch('local.json')
.then(data => data.json())
.then(data => {
this.setState({
Values: data
});
});
}
renderCalculatorOption(Values){
return (
<option data-symbol={Values.Symbol} value={Values.ask}>{Values.Symbol}</option>
);
}
selectAccountCurrency(e){
console.log('target-value', e.target[e.target.selectedIndex].getAttribute('data-symbol'));
var sliceLast = e.target[e.target.selectedIndex].getAttribute('data-symbol');
var resultLast = sliceLast.slice(3,6);
console.log(resultLast);
var conversionPairs = 'USD' + resultLast;
console.log(conversionPairs);
this.setState({
selectValue: e.target.value,
currentValuePrice : e.target[e.target.selectedIndex].getAttribute('data-symbol')
});
}
render() {
if(!this.state.Values) return <p>Loading...</p>;
return (
<div>
<FormGroup className="col-sm-12 col-md-4" controlId="formControlsSelect">
<FormControl className="calculator-option" componentClass="select" placeholder="select" ref="tester" value={this.state.selectValue} onChange={this.selectAccountCurrency} >
<option value="select">Currency Pairs</option>
{this.state.Values && this.state.Values.map(this.renderCalculatorOption, this)}
</FormControl>
</FormGroup>
<div className="calculator-group text-left">
<p className="calculator__text" >Current Conversion Price: {this.state.currentValuePrice}</p>
<p className="calculator__text" >Ask Price: {this.state.selectValue}</p>
</div>
</div>
);
}
}
export default PipValueCalculator;
Local.json
[
{
"Symbol":"GBPAUD",
"ask":7429.4
},
{
"Symbol":"USDAUD",
"ask":5705.0
}
]
ヒントをお寄せいただきありがとうございます。 ;) – Fiido93