react native javascript mobx template
1.0.0
This is an essential example to build React-native app using Javascript and Mobx.
yarn install OR npm installreact-native ejectreact-native run-ios OR react-native run-androidDefine store:
import { observable, action, runInAction, computed, autorun } from 'mobx';
import ajax from '../util/ajax'
export default class AppStore {
@observable isLoading = true
@observable isFailure = false
@observable searchTerm = observable.box("")
@observable deals = []
@observable currentDealId = null
constructor() {
this.searchTerm.observe( (value) => {
this.fetchDeals(value.newValue)
}, true)
}
async fetchDeals() {
ajax.fetchDealSearchResults(this.searchTerm).then(data => {
runInAction(() => {
this.isLoading = false
this.deals = data
})
})
}
@action setSearchTerm(searchStr) {
this.searchTerm.set(searchStr)
}
@action
setCurrentDeal(dealId) {
this.currentDealId = dealId
}
@action
unsetCurrentDeal() {
this.currentDealId = null
}
@computed get currentDeal() {
return this.deals.find((deal) => deal.key === this.currentDealId)
}
}Call in components:
@inject("appStore") @observer
class App extends React.Component {
searchDeals = (searchTerm) => {
this.props.appStore.setSearchTerm(searchTerm)
}
setCurrentDeal = (dealId) => {
this.props.appStore.setCurrentDeal(dealId)
}
unsetCurrentDeal = () => {
this.props.appStore.unsetCurrentDeal()
}
render() {
const appStore = this.props.appStore
}
}If you see any issue, please do not hesitate to create an issue here or can contact me via email [email protected] or Linkedin
Thanks
references