关于参数的文档真的很有限:
https://facebook.github.io/react-native/releases/0.38/docs/textinput.html
虽然作为一个散步可以使用
<TextInput
onChangeText={(text) => this.setState({text})}
onEndEditing={() => this.handleBlurCheck(this.state.text, params)}
/>
UPD。
另一个需要考虑的可行解决方案是:
<TextInput
onEndEditing={(e) => this.handleBlurCheck(e.nativeEvent.text, params)}
/>
详细说明:
查看源代码很明显,您得到的正是发送的内容:
ReactTextInputBlurEvent.java
private WritableMap serializeEventData() {
WritableMap eventData = Arguments.createMap();
eventData.putInt("target", getViewTag());
return eventData;
}
与一切就绪的 iOS 代码不同:
RCTEventDispatcher.m
NSMutableDictionary *body = [[NSMutableDictionary alloc] initWithDictionary:@{
@"eventCount": @(eventCount),
@"target": reactTag
}];
if (text) {
body[@"text"] = text;
}
if (key) {
if (key.length == 0) {
key = @"Backspace"; // backspace
} else {
switch ([key characterAtIndex:0]) {
case '\t':
key = @"Tab";
break;
case '\n':
key = @"Enter";
default:
break;
}
}
body[@"key"] = key;
但是,如果我们查看“onEndEditing”事件:
ReactTextInputEndEditingEvent.java
private WritableMap serializeEventData() {
WritableMap eventData = Arguments.createMap();
eventData.putInt("target", getViewTag());
eventData.putString("text", mText);
return eventData;
}
text 属性设置在那里。