React Native - TypeError: this.addItem.bind - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь изучить React и создать список Todo.

Я получил эту ошибку:

Ошибка типа: Undefined не является объектом (оценивает this.addItem.bind')

Я думаю, что ошибка связана с функцией' addItem ', но я не смог найти проблему.

Как я могу решить эту проблему?

Этокод:

import MyButton from './button';

  const listItems = ["Ödevini Yap","İşe Git"];

export default class App extends React.Component {
  constructor(props) {
    super(props);
    this.addItem = this.addItem.bind(this);
  }

  state = {
    toDo: '',
  }

  AddItem() {
    console.warn('App::addItem', this.state.toDo);
    this.setState({ toDo: '' })
  }

  renderItem(item) {
    return(
      <View>
          <Text>{item}</Text>
      </View>
    )
  }

  render() {
    return (
      <View>
        <View>
          <View>
            <TextInput value = { this.state.toDo } onChangeText = {(v) => this.setState({ toDo: v }) } placeholder = 'Enter ToDo Item'></TextInput>
          </View>
          <View>
            <MyButton onPress = {this.AddItem} text = {'Ekle'}></MyButton>
          </View>
        </View>
        <ScrollView>
          {
            listItems.map( (item) => this.renderItem(item) )
          }
        </ScrollView>
      </View>
    );
  }
}

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Изменить

this.addItem = this.addItem.bind(this);

на

this.addItem = this.AddItem.bind(this);
0 голосов
/ 05 октября 2018

Вы сделали ошибку опечатки

Изменить

AddItem() {
    console.warn('App::addItem', this.state.toDo);
    this.setState({ toDo: '' })
  }

На

addItem() {
    console.warn('App::addItem', this.state.toDo);
    this.setState({ toDo: '' })
  }
0 голосов
/ 05 октября 2018

Это опечатка

this.AddItem = this.AddItem.bind(this); //fixed
...