0 javascript ecmascript-6 reactjs react-native
我试图用setState一个TextInput像这样:
class AppS extends Component {
constructor(props){
super(props);
this.state = {
ShowText: '',
letter: ''
};
}
render(){
return(
<View>
<TextInput style ={{color: "green"}}
onChangeText = {(letter)=>this.setState({ letter })}>
</TextInput>
<Text style = {styleForApps.fon}> {this.state.letter} </Text>
<Text style = {styleForApps.body}> {this.state.ShowText} </Text>
</View>
);
}
}
Run Code Online (Sandbox Code Playgroud)
当我setState像这样试验:
onChangeText = {(txt)=>this.setState({ letter: txt })}>
Run Code Online (Sandbox Code Playgroud)
它运作良好.但当我把它改为:
onChangeText = {(txt)=>this.setState({ letter })}>
Run Code Online (Sandbox Code Playgroud)
它始终给出错误"无法找到变量字母".我认为这setState一点应该由括号中的参数定义txt.
你能解释一下吗,我不明白它究竟是如何传递价值的letter.
您正在尝试使用速记属性定义.此ES6功能允许您仅在键和值相同时指定密钥.它没有采用参数的值.这意味着当你这样做:
this.setState({
letter
});
Run Code Online (Sandbox Code Playgroud)
这意味着:
this.setState({
letter: letter
});
Run Code Online (Sandbox Code Playgroud)
因为它是desugars所以键和值是相同的.然后报告错误,因为letter没有定义.你可以这样做:
(letter) => this.setState({ letter })
Run Code Online (Sandbox Code Playgroud)
这是因为你命名参数letter,而不是txt.
| 归档时间: |
|
| 查看次数: |
1809 次 |
| 最近记录: |