(Я новичок в React, поэтому извиняюсь, если это кажется глупым вопросом).
У меня есть элемент управления React, где я просто хочу иметь возможность выбрать кнопку и отключить эту кнопку, а другую - включить; Например:
class MyControl extends Component<IMyControlProps> {
...
public render() {
var isRunning = false;
return (
<Button name = "btnStart" disabled = {isRunning} onClick = { () => {
isRunning = true;
this.props.RunningFunc;
}}>Start Running</Button>
<Button name = "btnStop" disabled = {!isRunning} onClick = { () => {
isRunning = false;
this.props.StopRunningFunc!
}}>Stop!</Button>
...
Однако нажатие кнопки запуска не влияет на состояние кнопки остановки. Есть ли метод или функция, которую нужно вызвать для принудительного обновления?
Вы должны использовать переменную состояния!
Нравится:
return (
<Button name = "btnStart" disabled = {this.state.isRunning} onClick = { () => {
this.setState({ isRunning: true });
this.props.RunningFunc;
}}>Start Running</Button>
<Button name = "btnStop" disabled = {!this.state.isRunning} onClick = { () => {
this.setState({ isRunning: false });
this.props.StopRunningFunc!
}}>Stop!</Button>
Попробуйте перенести isRunning в состояние. Когда вы обновляете состояние, вызывается функция рендеринга и обновляется ваш графический интерфейс.
state = {isRunning: false};
public render() {
return (
<Button name = "btnStart" disabled = {this.state.isRunning} onClick = { () => {
this.setState({isRunning:true});
this.props.RunningFunc;
}}>Start Running</Button>
<Button name = "btnStop" disabled = {!this.state.isRunning} onClick = { () => {
this.setState({isRunning:false});
this.props.StopRunningFunc;
}}>Stop!</Button>