React.js双向绑定:valueLink中的两级深度路径

 丶Le丨囧囧_832 发布于 2023-02-04 15:04

我的状态是:

[
  {type: "translateX", x: 10},
  {type: "scaleX", x: 1.2}
]

我正在使用双向绑定助手,我无法提供有效的密钥字符串linkState:

this.state.map(function(item, i) {
  return 
}

如果this.linkState接受一些查询语法会很好,例如从我的示例中"0.type"检索 "translateX".

有没有解决方法?


我编写了DeepLinkState mixin,它是React.addons.LinkedStateMixin的直接替代品.用法示例:

this.state.map(function(item, i) {
  return 
}

linkState("0.x") 也是可以接受的语法.

1 个回答
  • 编辑:

    我意识到深度路径LinkedState非常酷,所以我尝试实现它.
    代码:https
    ://gist.github.com/tungd/8367229用法:http://jsfiddle.net/uHm6k/3/


    正如文件所述,它LinkedState是一个包装器onChange/setState,用于简单的情况.你总是可以写完全onChange/setState来实现你想要的.如果你真的想坚持下去LinkedState,你可以使用非mixin版本,例如:

    getInitialState: function() {
        return { values: [
            { type: "translateX", x: 10 },
            { type: "scaleX", x: 1.2 }
        ]}
    },
    handleTypeChange: function(i, value) {
        this.state.values[i].type = value
        this.setState({ values: this.state.values })
    },
    render: function() {
        ...
        this.state.values.map(function(item, i) {
            var typeLink = {
                value: this.state.values[i].type,
                requestChange: this.handleTypeChange.bind(null, i)
            }
            return <div><input valueLink={typeLink}/></div>
        }, this)
        ...
    }
    

    这是JSFiddle的工作:http://jsfiddle.net/srbGL/

    2023-02-04 15:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有