我想知道在按下TextInput时是否可以显示datepicker模式。
我正在使用TouchableWithoutFeedback
和TextInput
。如果我使用Text
,它运行良好,但是当我使用TextInput时,datepicker模式不会显示。
我使用TextInput的原因是因为我想使用underlineColorAndroid
道具。
这是代码
showPicker = async (stateKey, options) => {
try {
const newState = {};
const { action, year, month, day } = await DatePickerAndroid.open(options);
if (action === DatePickerAndroid.dismissedAction) {
newState[stateKey + 'Text'] = 'dismissed';
} else {
const date = new Date(year, month, day);
newState[stateKey + 'Text'] = date.toLocaleDateString();
newState[stateKey + 'Date'] = date;
}
this.setState(newState);
} catch ({ code, message }) {
console.warn(`Error in example '${stateKey}': `, message);
}
};
<TouchableWithoutFeedback
onPress={this.showPicker.bind(this, 'simple', { date: this.state.simpleDate })}
>
<TextInput
placeholder="Where the event held*"
onFocus={() => this.onFocus()}
onFocus={() => this.onFocus()}
style={{
height: 60, backgroundColor: this.state.backgroundColor, color: this.state.color
}}
value={this.state.simpleText}
/>
</TouchableWithoutFeedback>
目标是每当我按下/点击TextInput
时,它会弹出datepicker模式,然后我可以从模态中选择日期。
答案 0 :(得分:2)
您只需要在TextInput的showPicker
道具中调用onFocus
函数。像那样:
<TextInput onFocus = {this.showPicker.bind(this, 'simple', { date: this.state.simpleDate })}>
如果我的想法与你的目标不相符,请原谅我。