javascript – 为组件实例添加自定义道具(不通过父级) – react-data-grid
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 为组件实例添加自定义道具(不通过父级) – react-data-grid,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1934字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 为组件实例添加自定义道具(不通过父级) – react-data-grid](/upload/InfoBanner/zyjiaocheng/774/d861db773d28473c97392982f0d9b7b4.jpg)
只是提供更广泛的背景 –
我最终的目标是使用“同步”图标增强可编辑的Cell,如果与后端同步.
我继续尝试将自定义道具添加到特定的可编辑单元格,以指示syncedWithBackEnd = true / false,然后使用自定义Formatter来有条件地添加样式(如果与DB prop同步为真).
问题是,我未能将此自定义道具交付给Cell实例
到目前为止尝试过:
>提供对Formatter的回调并从外部调用它.没有找到在Formatter实例上调用函数的方法(附加到特定单元格)
>将prop设置为handleRowUpdated逻辑的一部分.设置自定义道具但它没有到达Cell:
var rows = this.getRows();
…
// e.updated.customProp =“whatever”—>无法到达Cell
Object.assign(rows [e.rowIdx],e.updated);
this.setState({rows:rows});
关于如何实现这一点的任何想法?或者也许有一些显而易见的方法可以达到我完全错过的最终目标(必须提到我是React的新手并且对于js来说是新手).
解决方法:
当实际同步发生时(在想要更新自定义单元格之前)我假设它是通过回调完成的?如果是这样,那么执行远程ajax调用以更新值的回调可以更新this.state.rows.customProp(this.state.rows.whatever.customProp)并且一旦状态发生变化并假设你的getRows()从this.state.rows获得然后它将自动发生.更糟糕的情况是,您可能必须在更改状态值后添加对this.forceupdate()的调用.这是基于我听到的类似的东西……
//column data inside constructor (could be a const outside component as well)
this.columnData = [
{
key: whatever,
name: whatever,
...
formatter: (props)=>(<div className={props.dependentValues.isSynced? "green-bg" : "")} onClick={(evt)=>this.clickedToggleButton} >{props.value}</div>),
getRowMetaData: (data)=>(data),
},
...
}
]
这是我的数据网格包装器组件中的回调函数…
//when a span
clickedToggleButton(evt, props){
//do remote ajax call we have an ajax wrapper util we created so pseudo code...
MyUtil.call(url, params, callback: (response)=>{
if(this.response.success){
let rows = this.state.rows;
let isFound = false;
for(let obj of rows){
if(obj.id==props.changedId){
obj.isSynced = true;
isFound = true;
break;
}
}
//not sure if this is needed or not...
if(isFound){ this.forceUpdate(); }
}
}
}
不确定这是否有帮助,但可能会让你开始
内容总结
以上是互联网集市为您收集整理的javascript – 为组件实例添加自定义道具(不通过父级) – react-data-grid全部内容,希望文章能够帮你解决javascript – 为组件实例添加自定义道具(不通过父级) – react-data-grid所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。