I'm trying to understand why my app is not re rendering when I changing my state in the mobx observable names array. I'm changing the value with the input tag. would love for some help :)
observers component:
import {observable, action, autorun, computed} from 'mobx'
class TodosStore {
@observable names = ["p1", "p2", "p3"]
@observable filter = ""
@action
get filterredValue(){
return store.names.filter(word => word.includes(this.filter))
}
}
//@ts-ignore
var store = window.store = new TodosStore
export default store
autorun(() => {
console.log(store.filter);
console.log(store.names);
})
and this is my app component:
import React from 'react';
import './App.css';
import store from './components/observers'
class App extends React.Component {
constructor(props :any) {
super(props);
this.setName = this.setName.bind(this);
}
setName = (e : any) => {
store.filter = e.target.value
}
render() {
return (
<div className="App">
<header className="App-header">
{store.filterredValue.map((name) => <li key={name}>{name}</li>)}
<input
onChange={(e) => this.setName(e)}
/>
</header>
</div>
);
}
}
export default App;