Я пытаюсь сохранить DOM в переменной (let) и отобразить ее позже. Но он выдает мне неожиданный токен и отмечает мое имя переменной, и я немного сбит с толку, почему: D ... возможно, просто небольшая ошибка ... что угодно ... вот код "let whichCustomer" - это рассматриваемая переменная - очевидно.
class RegisterForm extends React.Component {
constructor(props) {
super(props);
this.state = {
whatCustomer: 'searching'
};
// Welche Art von Kunde
this.handleKind = this.handleKind.bind(this);
}
// State setzen von "Art von Kunde"
handleKind(event) {
this.setState({whatCustomer: event.target.value});
}
let whichCustomer = (<button className = "valueButton" name = "whatCustomer" value = "searching" onClick = {this.handleKind}>Suchender</button>
<button className = "valueButton" name = "whatCustomer" value = "sponsor" onClick = {this.handleKind}>Sponsor</button>
<button className = "valueButton" name = "whatCustomer" value = "adverter" onClick = {this.handleKind}>Werbeflächenbetreiber</button>
);
render() {
return (
<div className = "registerForm" id = "sponsor">
<h1 className = "turquoise" style = {{textAlign: 'center'}}>
Jetzt direkt registrieren und loslegen!
</h1>
<br />
<br />
<form>
Was sind Sie?
<br />
{whichCustomer}
</form>
</div>
);
}
}
Я немного новичок, чтобы отреагировать .. помилуй меня, пожалуйста: D





В коде я предполагаю, что вы написали let whichCustomer внутри компонента класса (вот почему вы получаете неожиданный токен). Внутри компонента класса вы не можете объявить переменную. Вы должны записать whichCustomer без ключевого слова let.
Properties specified in a class definition are assigned the same attributes as if they appeared in an object literal.
whichCustomer = (<button className = "valueButton" name = "whatCustomer" value = "searching" onClick = {this.handleKind}>Suchender</button>
<button className = "valueButton" name = "whatCustomer" value = "sponsor" onClick = {this.handleKind}>Sponsor</button>
<button className = "valueButton" name = "whatCustomer" value = "adverter" onClick = {this.handleKind}>Werbeflächenbetreiber</button>
);
также добавьте ключевое слово this для доступа к свойству.
whichCustomer = (<button className = "valueButton" name = "whatCustomer" value = "searching" onClick = {this.handleKind}>Suchender</button>
<button className = "valueButton" name = "whatCustomer" value = "sponsor" onClick = {this.handleKind}>Sponsor</button>
<button className = "valueButton" name = "whatCustomer" value = "adverter" onClick = {this.handleKind}>Werbeflächenbetreiber</button>
);
render() {
return (
<div className = "registerForm" id = "sponsor">
<h1 className = "turquoise" style = {{textAlign: 'center'}}>
Jetzt direkt registrieren und loslegen!
</h1>
<br />
<br />
<form>
Was sind Sie?
<br />
{this.whichCustomer}
</form>
</div>
);Это была проблема! Спасибо: D Но все еще интересно .. почему нет объявления внутри компонента класса?
Лучше сделать stateless component.
WhatCustomer
const WhichCustomer = ({handleKind}) => (
<React.Fragment>
<button
className = "valueButton"
name = "whatCustomer"
value = "searching"
onClick = {handleKind}>Suchender</button>
<button
className = "valueButton"
name = "whatCustomer"
value = "sponsor"
onClick = {handleKind}>
Sponsor
</button>
<button
className = "valueButton"
name = "whatCustomer"
value = "adverter"
onClick = {handleKind}>Werbeflächenbetreiber</button>
</React.Fragment>
);
оказывать:
render() {
return (
<div className = "registerForm" id = "sponsor">
<WhichCustomer handleKind = {this.handleKind}/>
</div>
);
}
Добавьте код всего вашего компонента, чтобы мы могли видеть, является ли он тупым компонентом, функцией или компонентом стиля класса. Обычно вы можете называть свою переменную как {this.whichCustomer}