无法读取React native中未定义的属性[PROPERTY]

时间:2018-02-08 08:38:45

标签: react-native

我是React-native的新手,我从Udemy视频中学习。我关注视频,但由于反应原生版本的差异,事情发生了变化。 我的错误this.stateundefined

  

无法读取未定义

的属性'newTodoText'

我使用react-redux

这是我的Main.js代码

constructor(props) {
        super(props);
        this.state = {
            newTodoText: ""
        };
    }

addNewTodo(){
    console.log(this.state);  // undefined <------------ 
    var newTodoText = this.state.newTodoText;
    {/* var {newTodoText} = this.state; */}
    if (newTodoText && newTodoText != "") {
        this.setState({
            newTodoText: ""
        })
        this.props.dispatch(addTodo(newTodoText));
    }
}

这是我的render()

<TextInput  
      onChangeText={(text) => this.setState({newTodoText:text})}
      value={this.state.newTodoText}
      returnKeyType="done"
      placeholder="New ToDo"
      onSubmitEditing={this.addNewTodo}
      underlineColorAndroid="transparent"
      style={styles.input}
>

</TextInput>

2 个答案:

答案 0 :(得分:2)

constructor(props) {
    super(props);
    this.addNewTodo = this.addNewTodo.bind(this); // Here is the key
    ...
}

答案 1 :(得分:1)

如果你有babel依赖变换类属性或启用stage-2预设,你也可以使用箭头功能。

# Get information about the scale set
$vmss = Get-AzureRmVmss `
                -ResourceGroupName $ResourceGroup `
                -VMScaleSetName $ScaleSet

Remove-AzureRmVmssExtension -VirtualMachineScaleSet $vmss -Name "customScript"
Update-AzureRmVmssInstance -ResourceGroupName $ResourceGroup -VMScaleSetName $scaleSetName -InstanceId "*"