暴露出来DynamicQuerylang,方便在render中计算DQL
Closed this issue · 3 comments
hufeng commented
暴露出来DynamicQueryLang,方便在render中计算DQL的值
目前的DQL的的上下文绑定比较弱,只能绑定defaultProps的同名属性,这样不够用,思考是不是可以放开让用户自己定义上下文
假如store的中的state为:
todo: fromJS([
{id:1, text: 'hello', done: false},
{id: 2, text: 'world', done: true}
])
const todoItemDQL = QL('todoItemDQL', [
['todo', '$index', 'text],
(text) => text
])
@Relax
class Title extends Component {
static relaxProps = {
bigQuery: noop,
}
render() {
const {bigQuery} = this.props.relaxProps
const ctx = todoItemDQL.withContext({index: 1}).
const title = bigQuery(new QueryLang(ctx.id(), ctx.lang()))
}
}
KeithZhang commented
是不是连上下文都不用绑,我在想这样用可不可以:
const todoItemDQL = QL('todoItemDQL', {index, text}, [
['todo', index, text],
(text) => text
])
@Relax
class Title extends Component {
static relaxProps = {
text: 'text',
todoItem: todoItemDQL,
}
render() {
const {index} = this.props
const {text} = this.relaxProps
return (
<div>{todoItem.bind(this, index, text)}</div>
)
}
}
hufeng commented
@KeithZhang 这个想法不错,我来试验下
hufeng commented
可以设计一个PQL