react-color是個拾色器,通過它來獲取顏色值,下載匯入,這裡用了一個其中一種拾色器:
npm i react-color -S
import { CompactPicker } from 'react-color';複製程式碼
然後在render()
中使用即可:
<CompactPicker />複製程式碼
這樣太簡陋,不實用,所以正常這樣用:
定義一個顏色狀態,用來儲存使用者選擇的顏色值:
constructor (props) { super(props); this.state = { color: '#FFFFFF', }}複製程式碼
渲染成這樣:
render () { return ( <CompactPicker color={this.state.color} onChange={this.handleColorChange} /> )}複製程式碼
預設效果,可以看到,當前選中的顏色值是#FFFFFF,當然可以不寫預設值:
當使用者選擇一個顏色時,執行handleColorChange
方法:
handleColorChange = (colorCode) => { this.setState({ color: colorCode.hex })}複製程式碼
預設會傳顏色值物件啦,自己可以列印看看,我用到了16進位制的顏色值,改變了color狀態就可以拿著它做壞事啦,比如可以給一個元素設定背景:
<div
style={{
height: 100,
width: 100,
marginTop: 10,
backgroundColor: this.state.color
}}>
</div>複製程式碼
好了,上圖:
另外說一句,我寫的程式碼,格式真優雅:)