糟糕的JavaScript语法

TextInput是一个允许用户输入文本的基础组件。它有一个名为onChangeText的属性,此属性接受一个函数,而此函数会在文本变化时被调用。另外还有一个名为onSubmitEditing的属性,会在文本被提交后(用户按下软键盘上的提交键)调用。

假如我们要实现当用户输入时,实时将其以单词为单位翻译为另一种文字。我们假设这另一种文字来自某个吃货星球,只有一个单词: 🍕。所以”Hello there Bob”将会被翻译为”🍕🍕🍕”。


import React, { Component } from 'react'; import { AppRegistry, Text, TextInput, View } from 'react-native'; export default class PizzaTranslator extends Component { constructor(props) { super(props); this.state = {text: ''}; } render() { return ( <View style={{padding: 10}}> <TextInput style={{height: 40}} placeholder="Type here to translate!" // 写法一 onChangeText={(text) => this.setState({text})} // 写法二 onChangeText={(sqi_text) => this.setState({text: sqi_text})} // 写法三 onChangeText={ (sqi_text) => {this.setState( (sqi_priviousStatus) => { return {text: sqi_text}; } );} } /> <Text style={{padding: 10, fontSize: 42}}> {this.state.text.split(' ').map((word) => word && '🍕').join(' ')} </Text> </View> ); } }

以上是ReactNative中文网中给出的处理文本输入的教程, 但是这个示例代码对于初学者来说真的很糟糕, 其中onChangeText属性值得第一种写法为ReactNative中文网给出的代码, 下面两种是我自己添加的两种写法, 说实话, 第一种写法真的让我这个初学者很懵逼…

发表评论

邮箱地址不会被公开。 必填项已用*标注