在我的應用程序中,我有一個update
函數。反應更新不同組件的相同狀態
update: function() {
this.setState({
red:this.refs.red1.refs.range.getDOMNode().value
green:this.refs.green1.refs.range.getDOMNode().value,
blue:this.refs.blue1.refs.range.getDOMNode().value
})
},
我想添加一個red2 ref並更新紅色狀態。我該怎麼做呢?增加另一個red:
只會覆蓋第一個。
Edit:
我嘗試添加一個update2
功能。按預期更新狀態。我只有一個代碼問題。當我將red2
更改爲某個數字時,red1
不會更改。它的價值應該是國家。我想因爲我不打電話red1
的update
函數它的值不會更新以匹配當前狀態。
update2: function() {
this.setState({
red: this.refs.red2.refs.range.getDOMNode().value,
green: this.refs.green2.refs.range.getDOMNode().value,
blue: this.refs.blue2.refs.range.getDOMNode().value,
})
},
XML表示:
<ColorPicker ref="red1" min={0} max={255} step={1} val={this.state.red} update={this.update} />
<ColorPicker ref="red2" min={0} max={255} step={1} val={this.state.red} update={this.update2} type="number" />
如何獲得red1
和red2
更新狀態和有國家作爲反映其價值時的兩個組成部分的變化之一。
Edit 2:
顏色選擇器組件:
var ColorPicker = React.createClass({
propTypes: {
min: React.PropTypes.number,
max: React.PropTypes.number,
step: React.PropTypes.number,
val: React.PropTypes.number,
label: React.PropTypes.string,
update: React.PropTypes.func.isRequired,
type: React.PropTypes.oneOf(['number', 'range']),
},
getDefaultProps: function() {
return {
min: null,
max: null,
val: 0,
step: 1,
label: '',
type: 'range',
}
},
render: function() {
return (
<div>
<input
ref="range"
type={this.props.type}
min={this.props.min}
max={this.props.max}
step={this.props.step}
defaultValue={this.props.val}
onChange={this.props.update}
/>
</div>
)
}
})
這麼紅的值是基於兩個RED1和RED2的功能? – nilgun
@nilgun是的,我有一個範圍滑塊和一個數字輸入。我希望這兩個輸入都是1)。反映紅色狀態的值**和** 2)。在更改時更新紅色的狀態。我用更多的想法更新了代碼。 –
您可以發佈ColorPicker組件的代碼嗎?這就像val prop在更新時不會設置值。 – nilgun