Если вы делаете правильные вещи в signUp()
и signIn()
, вы, вероятно, захотите изменить signUp() {}
на signUp = () => {}
, а также signIn() {}
на signIn = () => {}
, затем
<Button onClick={this.signUp} />
вместо <Button onClick={this.signUp()} />
также <Button onClick={this.signIn} />
вместо <Button onClick={this.signIn()} />
Я полагаю, что вы не должны использовать document.getElementById
в конструкторе, поскольку то, что вы называете, может еще не существовать в DOM, вы можете прочитать this .
Если вы не собираетесь анимировать свой вид, а просто меняете левую позицию с абсолютной позицией Я предлагаю вам поместить стили, которыми вы хотите манипулировать, в состояние.
constructor(props) {
super(props);
this.state = {
signupLeftPosition: 0, // put initial position here, now I assume it is 0
signinLeftPosition: 0, // put initial position here, now I assume it is 0
buttonLeftPosition: 0, // put initial position here, now I assume it is 0
};
}
И ваш signUp ()
signUp = () => {
this.setState({
signupLeftPosition: 50,
signinLeftPosition: 450,
buttonLeftPosition: 0
})
}
И ваши формы, я приму форму с идентификатором "регистрация" в качестве примера:
<form
class="input-group'
id="signup"
style={{ left: this.state.signupLeftPosition }}
/>
Также сделайте то же самое с вашим компонентом с идентификатором signin
и button