小编Syl*_*lar的帖子

在反应中从状态数组中删除项目

故事是,我应该能把Bob,Sally和Jack放进盒子里.我也可以从包装盒中取出.删除后,不会留下任何插槽.

people = ["Bob", "Sally", "Jack"]
Run Code Online (Sandbox Code Playgroud)

我现在需要删除,比如"Bob".新阵列将是:

["Sally", "Jack"]
Run Code Online (Sandbox Code Playgroud)

这是我的反应组件:

...

getInitialState: function() {
  return{
    people: [],
  }
},

selectPeople(e){
  this.setState({people: this.state.people.concat([e.target.value])})
},

removePeople(e){
  var array = this.state.people;
  var index = array.indexOf(e.target.value); // Let's say it's Bob.
  delete array[index];
},

...
Run Code Online (Sandbox Code Playgroud)

在这里,我向您展示了一个最小的代码,因为它有更多(onClick等).关键部分是从数组中删除,删除,销毁"Bob",但removePeople()在调用时不起作用.有任何想法吗?我正在看这个,但我可能做错了,因为我正在使用React.

javascript arrays reactjs

93
推荐指数
8
解决办法
15万
查看次数

Rails 4:向现有表添加多个列

我知道如何将一列添加到现有表中.现在我必须在现有表中添加许多列.是否有更短的方式:

add_col1_col2_col3_col4_.._coln_to_tables col1:integer col2:integer etc...
Run Code Online (Sandbox Code Playgroud)

对于我必须添加的所有其他列,我是否必须执行上述操作?

ruby ruby-on-rails ruby-on-rails-4

23
推荐指数
3
解决办法
2万
查看次数

缺少'生产'环境的secret_key_base,

我简直无法通过这条消息

缺少secret_key_base'生产'环境,设置此字符串为rails credentials:edit(ArgumentError)

我这里有rails 5.2.0.跑来跑去EDITOR=vim rails credentials:edit:

production:
   secret_key_base: xxxxxxxxxxxxxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

保存,并在终端: RAILS_ENV=production rails c

我错过了什么吗?我重新启动了服务器和同样的问题.在开发模式中没有问题.

ruby-on-rails ruby-on-rails-5 ruby-on-rails-5.2

17
推荐指数
5
解决办法
2万
查看次数

如何在Model上执行删除操作?

来自Ruby on Rails体验,您可以在其中加载rails控制台以删除用户或所有用户.我是Laravel 5的新手,我正在寻找类似于删除sqlite3数据库中已有用户的东西.

我看到人们在谈论User::find(1)->delete();删除用户的位置,但是你把它放在哪里然后运行?是否有控制台来执行删除任务?我想知道如何在不删除表的情况下删除用户.我不想软删除.

php sqlite laravel eloquent laravel-5

16
推荐指数
3
解决办法
5万
查看次数

在React上传之前获取图像预览

这里有很多这样的例子,但似乎无法找到任何反应.我设法转换香草js作出反应,但得到一个错误.

答案看起来很简单所以我在这里做出反应:

getInitialState: function(){
  return{file: []}
},

_onChange: function(){
  // Assuming only image
  var file = this.refs.file.files[0];
  var reader = new FileReader();
  var url = reader.readAsDataURL(file);
  console.log(url) // Would see a path?
  // TODO: concat files for setState
},

render: function(){
 return(
  <div>
    <form>
      <input 
        ref="file" 
        type="file" 
        name="user[image]" 
        multiple="true"
        onChange={this._onChange}/>
     </form>
    {/* Only show first image, for now. */}
    <img src={this.state.file[0} />
  </div>
 )
};
Run Code Online (Sandbox Code Playgroud)

基本上我见过的所有答案都显示了我所拥有的东西.React应用程序有何不同?

关于答案:

在此输入图像描述

javascript jquery reactjs

14
推荐指数
5
解决办法
2万
查看次数

如何防止多个React副本加载?

在我以前的Meteor应用程序中,使用browserify和React,所有工作都在运行,直到我切换到meteor webpack.

我在我的meteor应用程序中使用react-select并且它工作得很好但是使用browserify我可以阻止多个反应来自加载,这可以防止我现在遇到的这个错误:

错误:不变违规:addComponentAsRefTo(...):只有ReactOwner可以有refs.您可能正在向未在组件__CODE__方法中创建的组件添加引用,或者您已加载多个React副本(详细信息:https://fb.me/react-refs-must-have-owner).

我的package.json看起来像这样:

Error: Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component's `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).

在webpack中是否有配置我可以使用外部调用?不完全确定这意味着什么,但评论说使用:

...

"dependencies": {
    "classnames": "^2.1.3",
    "lodash": "^3.10.0",
    "react": "^0.14.6",
    "react-dom": "^0.14.6",
    "react-mixin": "^2.0.1",
    "react-select": "^1.0.0-beta8"
  },

...
Run Code Online (Sandbox Code Playgroud)

javascript meteor reactjs webpack

13
推荐指数
1
解决办法
7366
查看次数

使用ErrorBoundary创建React App不显示错误消息

我正在学习如何使用componentDidCatch().它看起来很直接.它可以工作,但仍然在视图上显示完整的错误堆栈.

在单独的文件中:

import React, { Component } from 'react'

class ErrorBoundary extends Component {
  constructor(props) {
    super(props);
    this.state = {
      hasError: false
    }
  }

  componentDidCatch(error, info) {
    console.log("Catching an error") // this is never logged
    this.setState(state => ({...state, hasError: true }))
  }

  render() {
    if (this.state.hasError) { return <div>Sorry, an error occurred</div> }

    return this.props.children
  }
}
export default ErrorBoundary

      ...

import React, { Component } from 'react'

class Foo extends Component {

  render() {
    return this.props.a.b; // …
Run Code Online (Sandbox Code Playgroud)

reactjs create-react-app

11
推荐指数
2
解决办法
2246
查看次数

在 AppCenter 中构建使用 Carthage 的应用程序

我继承了一个用 Carthage 构建的项目。使用 Xcode 12,我遇到了这个错误:

致命错误:/Applications/Xcode_12.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo:/Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/ 4.6.0/Build/Intermediates.noindex/ArchiveIntermediates/AEXML iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/AEXML.framework/AEXML 和 /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6 .0/Build/Products/Release-iphonesimulator/AEXML.framework/AEXML 具有相同的体系结构 (arm64),并且不能位于同一个 fat 输出文件中

使用通用架构构建通用框架是不可能的。“AEXML”的设备和模拟器切片均针对以下版本构建:arm64 使用 --use-xcframeworks 重新构建以创建 xcframework 捆绑包。

快速的谷歌搜索让我发现了这个适用于我的本地机器。

第一次使用 AppCenter,我使用以下内容创建了一个预构建脚本:

#!/usr/bin/env bash

# Pre-build
# See: https://learn.microsoft.com/en-us/appcenter/build/custom/scripts/#pre-build
echo "Pre-build has started."
sh ./carthage.sh update --use-submodules
echo "Pre-build has ended."
Run Code Online (Sandbox Code Playgroud)

我认为应该使用迦太基来构建这个?我在 AppCenter 中收到错误:

*** 在 AEXML.xcodeproj 中构建方案“AEXML iOS” shell 任务 (/usr/bin/xcrun lipo -create /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6. 0/Build/Intermediates.noindex/ArchiveIntermediates/AEXML\ iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/AEXML.framework/AEXML /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0 /Build/Products/Release-iphonesimulator/AEXML.framework/AEXML -output /Users/runner/work/1/s/Carthage/Build/iOS/AEXML.framework/AEXML) 失败,退出代码 1:致命错误:/Applications /Xcode_12.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo:/Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0/Build /Intermediates.noindex/ArchiveIntermediates/AEXML iOS/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/AEXML.framework/AEXML 和 /Users/runner/Library/Caches/org.carthage.CarthageKit/DerivedData/12.3_12C33/AEXML/4.6.0/Build/ Products/Release-iphonesimulator/AEXML.framework/AEXML 具有相同的架构 (arm64),并且不能位于同一个 fat 输出文件中

使用通用架构构建通用框架是不可能的。“AEXML”的设备和模拟器切片均针对以下版本构建:arm64 使用 --use-xcframeworks …

mobile carthage visual-studio-app-center visual-studio-app-center-distribute

9
推荐指数
2
解决办法
4289
查看次数

将Sqlite表列NOT NULL修改为NULL

我在寻找类似的东西这个,但我使用sqlite3的.我试过了:

sqlite> UPDATE JOBS SET JOB_TYPES = NULL;
Run Code Online (Sandbox Code Playgroud)

但我得到了"约束失败".我这样做是正确的吗?

我想将当前的"NOT NULL"更改为"NULL".

sqlite

8
推荐指数
1
解决办法
3705
查看次数

ReferenceError:未定义请求

我试图复制一个Facebook messenger机器人,但继续得到request is not defined.

与Facebook相同的代码:

function callSendAPI(messageData) {
  request({
    uri: 'https://graph.facebook.com/v2.6/me/messages',
    qs: { access_token: PAGE_ACCESS_TOKEN },
    method: 'POST',
    json: messageData

  }, function (error, response, body) {
    if (!error && response.statusCode == 200) {
      var recipientId = body.recipient_id;
      var messageId = body.message_id;

      console.log("Successfully sent generic message with id %s to recipient %s", 
        messageId, recipientId);
    } else {
      console.error("Unable to send message.");
      console.error(response);
      console.error(error);
    }
  });  
}
Run Code Online (Sandbox Code Playgroud)

我的节点server.js看起来像这样:

const express = require('express');
const bodyParser = …
Run Code Online (Sandbox Code Playgroud)

node.js express

8
推荐指数
2
解决办法
3万
查看次数