Если вы хотите использовать MobX для этой цели, вы можете создать отдельное хранилище, которое контролирует его состояние:
import { decorate, observable, action } from 'mobx';
class ButtonStore {
value = null;
setValue(value) {
this.value = value;
}
}
decorate(ButtonStore, {
value: observable,
setValue: action
})
export class NumberButton extends Component {
constructor(props) {
super(props);
}
render() {
const { store } = this.props;
return (
<div>
<div className="content-section introduction">
<div className="feature-intro">
</div>
</div>
<div className="content-section implementation">
<div className="content-section implementation">
<h3 className="Number"> Number</h3>
<InputText type="text" value={store.value} onChange={(e) => store.setValue(e.target.value) } style={{width: "105%", height:"40px", }} />
</div>
</div>
</div>
);
}
}
Тогда в состоянии родительского компонента вы просто создадите экземпляр этого хранилища:
class ParentComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
buttonStore: new ButtonStore()
}
}
render() {
return <NumberButton store={this.state.buttonStore} />
}
}
Другой более простой способ - использовать React Hooks для обработки этого ввода.
Обратите внимание, что этот код не проверен, просто идея!