react 合并数组_javascript-React.js:数组和“关于合并功能的关键假设已被违反”错误...

您的状态是一个数组.

我在React文档中没有看到提及LinkedStateMixin mixin可以将输入链接到数组索引的任何内容.

可能发生的情况是:

>您的初始状态为[42,54]

>如果您修改索引0处的项目,LinkedStateMixin将创建一个新状态{0:43}

由于setState()不会覆盖现有状态,而是将新状态合并为现有状态(因为一次仅更新一个输入),因此React尝试将JSON对象合并到JS数组中.这很奇怪:)

实际上,您的初始值可以正确显示,因为array [index]和object [key]的工作原理相同.

我认为React目前对数组的支持并不理想,但是值得提出一个pull请求.

现在,您可以尝试使用如下对象:

var Dummy = React.createClass({

mixins: [React.addons.LinkedStateMixin],

getInitialState: function() {

return {0: 42, 1: 54};

},

render: function() {

return

{Object.keys(this.state).map(this.renderItem)}

{JSON.stringify(this.state, null, 2)}

},

renderItem: function(key) {

return

}

});

顺便说一下,您是否尝试过创建自己的LinkedStateMixin来链接到数组索引,您是否已在此处完成:

我只是想知道在React中是否可能有状态= [42,54],然后setState([undefined,55])最终有状态= [42,55],请告诉我们:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
{ type: "searchSelect", placeholder: "签约机构", valueName: 'signOrganId', optionName: "label", searchItemName: "label", optionId: "key", searchApi:commonService.orgPageList({}).then(res=>{ const {retData}=res retData.map(item=>{ return {key: item.id, label: item.organName, value: item.id,} }) }) }, 分析一下此段代码的报错 汉语解释 ,并修改searchApi中的代码,index.jsx:55 Uncaught TypeError: item.searchApi is not a function at searchQuery (index.jsx:55:1) at onFocus (index.jsx:129:1) at onContainerFocus (BaseSelect.js:326:1) at HTMLUnknownElement.callCallback (react-dom.development.js:188:1) at Object.invokeGuardedCallbackDev (react-dom.development.js:237:1) at invokeGuardedCallback (react-dom.development.js:292:1) at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:306:1) at executeDispatch (react-dom.development.js:389:1) at executeDispatchesInOrder (react-dom.development.js:414:1) at executeDispatchesAndRelease (react-dom.development.js:3278:1) at executeDispatchesAndReleaseTopLevel (react-dom.development.js:3287:1) at forEachAccumulated (react-dom.development.js:3259:1) at runEventsInBatch (react-dom.development.js:3304:1) at runExtractedPluginEventsInBatch (react-dom.development.js:3514:1) at handleTopLevel (react-dom.development.js:3558:1) at batchedEventUpdates$1 (react-dom.development.js:21871:1) at batchedEventUpdates (react-dom.development.js:795:1) at dispatchEventForLegacyPluginEventSystem (react-dom.development.js:3568:1) at attemptToDispatchEvent (react-dom.development.js:4267:1) at dispatchEvent (react-dom.development.js:4189:1) at unstable_runWithPriority (scheduler.development.js:653:1) at runWithPriority$1 (react-dom.development.js:11039:1) at discreteUpdates$1 (react-dom.development.js:21887:1) at discreteUpdates (react-dom.development.js:806:1) at dispatchDiscreteEvent (react-dom.development.js:4168:1)
最新发布
07-14

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值