Функция передачи в конструкторе компонентов в React - PullRequest
0 голосов
/ 05 мая 2020

Вопросы об этой игре про змей, которую я разрабатываю вместе с React.

Я читал в этом сообщении о настройке функции внутри конструктора. Теперь для примера я хочу, чтобы функция snakeMoves вызывала foodGenerator, который находится в конструкторе, но не в состоянии, поэтому вызов this.state внутри snakeMoves не даст мне foodGenerator.

какие у меня есть варианты передать foodGenerator в snakeMoves?

 class Play extends Component {
            constructor(props) {
            super(props)
            this.state ={
                gameSqueres: [],
                food: null
            }

            this.foodGenerator = this.foodGenerator.bind(this)
        }

    componentDidMount() {
            // create food
            this.foodGenerator()
        }

    foodGenerator() {
        console.log('food')
    }

    // snake move system
    snakeMoves = (e) => {
        const { gameSqueres } = this.state;
        console.log(foodGenerator())
    } 

Ответы [ 3 ]

1 голос
/ 05 мая 2020

Если требуется просто привязать this и получить новую функцию, вы можете вместо этого использовать стрелочные функции. Из метода snakeMoves() просто позвоните: this.foodGenerator()

foodGenerator = () => {
    console.log('food')
}
0 голосов
/ 05 мая 2020

Вы можете просто сделать это:

// snake move system
snakeMoves = (e) => {
   this.foodGenerator();
} 
0 голосов
/ 05 мая 2020

Используйте this для доступа к методам класса.

snakeMoves = (e) => {
    const { gameSqueres } = this.state;
    console.log(this.foodGenerator())
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...