Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从文本输入中获取所选文本_Android_React Native_Wysiwyg_Rich Text Editor_React Native Android - Fatal编程技术网

Android 从文本输入中获取所选文本

Android 从文本输入中获取所选文本,android,react-native,wysiwyg,rich-text-editor,react-native-android,Android,React Native,Wysiwyg,Rich Text Editor,React Native Android,假设这是一个组件 class Wysiwyg extends Component { constructor(props) { super(props); } render() { return( <View> <TextInput placeholder="Type here" /> </View> )

假设这是一个组件

class Wysiwyg extends Component {
    constructor(props) {
        super(props);
    }
    render() {
        return(
            <View>
                <TextInput placeholder="Type here" />
            </View>
        )
    }    
}

AppRegistry.registerComponent('AwesomeProject', () => Wysiwyg)
类所见即所得扩展组件{
建造师(道具){
超级(道具);
}
render(){
返回(
)
}    
}
AppRegistry.registerComponent('AwesomeProject',()=>Wysiwyg)
我打字:“棕色的大眼睛!”


现在,如果我从文本输入中选择“大”。如何获取所选文本输入值,以便在按下按钮时将“大”更改为“大”粗体。

您可以通过使用文本输入的onSelectionChange和onChangeText道具来实现这一点:

export default class TextSelectionTest extends Component {

  state = {
    selection: [0,0],
    text: ''
  };

  render() {
    const {selection: [start, end], text} = this.state;
    const selected = text.substring(start, end);
    return (
      <View>
        <TextInput value={text} onSelectionChange={this.onSelectionChange} 
                   onChangeText={text => this.setState({text})}/>
        <Text>{`Selected chars ${start}-${end}: ${selected}`}</Text>
      </View>
    );
  }

  onSelectionChange = event => {
    const selection = event.nativeEvent.selection;
    this.setState({
      selection: [selection.start, selection.end]
    });
  };
}
导出默认类TextSelectionTest扩展组件{
状态={
选择:[0,0],
文本:“”
};
render(){
const{selection:[start,end],text}=this.state;
const selected=text.substring(开始、结束);
返回(
this.setState({text})}/>
{`Selected chars${start}-${end}:${Selected}`}
);
}
onSelectionChange=事件=>{
const selection=event.nativeEvent.selection;
这是我的国家({
选择:[选择。开始,选择。结束]
});
};
}

至于选择加粗,我认为react native TextInput目前没有富文本编辑器功能,因此不可能

我会查一查,很快给你回复。谢谢。因为React Native 0.60
onSelectionChange
需要
multiline={true}
。我猜这就是罪魁祸首: