Comments (6)
@KidkArolis @oliverwoodings would love to hear your thoughts on this
from marty.
In v0.9 branch
from marty.
@jhollingworth could you provide an example of getting some value from a Marty.Store
from a Marty.Component
?
I've been going through the source and trying to make it work for a couple of hours now and can't seem to discover what am I missing. I'm essentially doing the same thing that's being proposed on the examples:
import Marty from 'marty'
import React from 'react'
export class BlockStore extends Marty.Store {
constructor(options) {
super(options)
this.state = {
1: {
data: {
some: 'data'
}
}
}
}
getData(id) {
return this.state[id].data;
}
}
export default class Block extends Marty.Component {
constructor(props, context) {
super(props, context)
this.listenTo = BlockStore
}
getState() {
return {
data: BlockStore.getData(this.props.id)
}
}
render() {
return (
<div>
Block Marty!
{JSON.stringify(this.state.data)}
</div>
)
}
}
But a call to BlockStore.getData(this.props.id)
fails because getData
is now an instance method of BlockStore
and not a class one.
After reading #153 I have a feeling I'm missing something too.
Could you hint me in the right direction? :)
Thanks,
Darío
from marty.
Sorry, documentation is next on my list :)
We have a new top level API Marty.register(clazz)
which will register the class into the internal container and return a new instance of the class. So given your example you would do
class BlockStore extends Marty.Store {
constructor(options) {
super(options)
this.state = {
1: {
data: {
some: 'data'
}
}
}
}
getData(id) {
return this.state[id].data;
}
}
exports Marty.register(BlockStore)
Marty.createStore
is now doing this underneath except we convert the object literal into class before passing it to register
.
I'm not entirely happy with this solution but I can't think of a nicer way of doing it... One thing I'm considering is having a browserify transform which automatically wraps anything you export with, e.g. the above would become:
var BlockStore = Marty.register(class _BlockStore { ... })
export BlockStore;
from marty.
Alt does something almost identical
from marty.
Class! :) Thanks! The funny thing is that within all that trying I had a call to Marty.register(BlockStore)
because from #153 it was clear that register
was indeed needed but I wasn't storing that result anywhere :) (thought it was more like a "register this thing here and it will do some magic" kind of thing :), luckily it's not like that. Will chime in with some docs these days too.
from marty.
Related Issues (20)
- Cannot read property '0' of undefined HOT 2
- Does the GitHub fetch library have to be used in HTTP Sources? HOT 3
- Server side fetches do not calculate content-length header HOT 6
- webpack, babel, karma & marty v0.9.17 problem with requiring react HOT 5
- I can't get Marty session storage to persist between tabs or Marty localStorage to work at all! HOT 8
- Running headless tests with PhantomJS as a 'browser' fails HOT 2
- Return error in locally HOT 5
- Optionally require `es6-promise` and `isomorphic-fetch` HOT 2
- not properly escaping "</script>" in app state dehydration HOT 2
- test-utils component specs throw on undefined `document` element HOT 10
- Performance Implications? HOT 2
- React.createElement called on each store change
- Consider reversing order in this.handlers HOT 4
- Application.renderToString performance HOT 5
- Application.RenderToString hangs when fetch result returns the value false. HOT 1
- no-iisue HOT 1
- Fetch state in a container based on the result of another fetch HOT 1
- Support React 0.14.0 HOT 6
- Update Docs HOT 2
- How awesome this project has been! HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from marty.