Этот мой компонент ниже содержит две кнопки (уменьшение, увеличение), и я хочу, чтобы кнопка уменьшения была скрыта, когда значение свойства(@observable number)
в AppState (Mobx) равно 10, и когда число изменяется, компонент повторного рендеринга mobx работает нормально.
Я поместил отладчик внутрь componentDidMount,
@observer
class Questions extends Component{
constructor(props){
super(props)
this.appState=this.props.appState
}
componentDidMount(){
debugger
if(this.appState.num==10){
document.getElementById("btnDecrement").style.visibility = "hidden";
}
else{
document.getElementById("btnDecrement").style.visibility = "block";
}
}
...
render(){
return(
<div>
...
<button id="btnDecrement" onClick={()=>{this.appState.decrementNumber()}} type="button" className="btn btn-default btn-lg">
Decrement
</button>
<button type="button" onClick={()=>{this.incrementNumber()}} className="btn btn-default btn-lg">
Increment;
</button>
</div>
)
}
}
}
он останавливается только после загрузки страницы, что имеет смысл, но мне нужно делать эту проверку каждый раз, когда номер редактируется.
Отредактировано: имеет смысл, что mobx работает таким образом, componentDidMount срабатывает только после его монтирования. Но тогда как я могу обрабатывать свою логику здесь «эффективным способом»?