桃花長相依
2021-06-11 18:45:15
我使用循環(huán)創(chuàng)建了一組按鈕。這些按鈕的背景顏色一個(gè)一個(gè)地改變,一次一個(gè)按鈕。有什么方法可以在調(diào)用函數(shù)時(shí)獲取背景顏色為黑色的按鈕的鍵。export default class App extends Component<Props> { constructor(props) { super(props); this.state = { selectedControl: 0, controls: ["TITLE1", "TITLE2", "TITLE3"] }; } componentDidMount() { this.timerHandle = setInterval(() => { this.setState(({selectedControl, controls}) => ({selectedControl: (selectedControl + 1) % controls.length}) ); }, 1000); } render() { const {selectedControl, controls} = this.state; return ( <View style={{ flex: 1, flexDirection: 'row', flexWrap: 'wrap', justifyContent: 'space-evenly', alignItems: 'stretch' }}> {controls.map((control, index) => ( <Button key={control} title={control} buttonStyle={index === selectedControl ? styles.highlighted : styles.buttonStyle}/> ))} </View> ); }}const styles = StyleSheet.create({ buttonStyle: { height: '100%', }, highlighted: { height: '100%', backgroundColor: 'black', }});
1 回答

慕尼黑的夜晚無繁華
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
按鈕鍵設(shè)置為control。因此,請檢查按鈕何時(shí)突出顯示(即index === selectedControl)render并且按鈕的鍵是control。
<View style={{
flex: 1,
flexDirection: 'row',
flexWrap: 'wrap',
justifyContent: 'space-evenly',
alignItems: 'stretch'
}}>
{controls.map((control, index) => {
if (index === selectedControl) {
console.log({"key": control}) /* <-- here */
}
return <Button key={control} title={control} buttonStyle={index === selectedControl ? styles.highlighted : styles.buttonStyle}/>
})}
</View>
添加回答
舉報(bào)
0/150
提交
取消