小编Mar*_*rty的帖子

React - 在未安装的组件上的setState()

在我的react组件中,我试图在ajax请求正在进行时实现一个简单的微调器 - 我使用state来存储加载状态.

出于某种原因,我的React组件中的这段代码会抛出此错误

只能更新已安装或安装的组件.这通常意味着您在已卸载的组件上调用了setState().这是一个无操作.请检查未定义组件的代码.

如果我摆脱第一个setState调用,则错误消失.

constructor(props) {
  super(props);
  this.loadSearches = this.loadSearches.bind(this);

  this.state = {
    loading: false
  }
}

loadSearches() {

  this.setState({
    loading: true,
    searches: []
  });

  console.log('Loading Searches..');

  $.ajax({
    url: this.props.source + '?projectId=' + this.props.projectId,
    dataType: 'json',
    crossDomain: true,
    success: function(data) {
      this.setState({
        loading: false
      });
    }.bind(this),
    error: function(xhr, status, err) {
      console.error(this.props.url, status, err.toString());
      this.setState({
        loading: false
      });
    }.bind(this)
  });
}

componentDidMount() {
  setInterval(this.loadSearches, this.props.pollInterval);
}

render() {

    let searches = this.state.searches || [];


    return (<div>
          <Table striped …
Run Code Online (Sandbox Code Playgroud)

javascript ajax state reactjs

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

使用overflow-y时减少滚动抖动:滚动;

我有一个2列布局,右边的列是一个可滚动的结果列表,最多有200个项目结果(基本上只有一个ul overflow-y: scroll;设置)

我发现当您滚动时,右侧列导致一些jank(在低端硬件上特别明显).

在Chrome时间轴中,当我滚动列时,我可以看到一些主要的"更新层树".有什么方法可以弄清楚为什么"更新层树"如此冗长以及CSS属性对速度的影响最大?当我点击它时 - 只是告诉我它运行了多长时间的信息.

我的每个li中都有一些表现不佳的CSS(例如滤镜,变换,盒阴影等) - 如果我逐个删除每个SASS文件,它会提高滚动性能(并最终删除jank一次我删除所有的CSS),但很明显很难确定哪些css属性没有执行此操作.

我想知道我是否遗漏了铬时间轴中的某些内容,这对这方面有帮助吗?

我曾尝试使用will-changeCSS属性将滚动提升为不同的图层/强制硬件加速 - 但这并没有多大区别.

滚动时也没有执行javascript事件.

限制少于200件物品不是一种选择.

我已经设置了一个这样的例子(我知道它有更长的项目列表,但这仅用于演示目的):https: //github.com/jooj123/jank/blob/master/scroll.html

真正有趣的是,如果我删除overflow-y: scroll;(在上面的例子中的.map-search__results)滚动变得非常平滑并且jank消失 - 为什么这会产生如此大的影响?

这是chrome时间轴(基本上只有很长的"更新层树"部分): 在此输入图像描述

固定:

保罗的答案will-change: transform就是现场,尤其是这个花絮有助于:

"添加将改变:转换;.一旦添加,"滚动重绘"矩形就消失了."

但要小心,因为它不会总是适用,具体取决于你的代码库,检查滚动性能问题指标,以确保"滚动重绘"关闭,对我来说,我还必须禁用一个-webkit-clip-path属性(在我的实际代码库 - 不在在其中一个子div中设置的演示),请参阅:

在此输入图像描述

html css performance google-chrome google-chrome-devtools

24
推荐指数
2
解决办法
4815
查看次数

实体数据模型设计器不显示表

我正在尝试通过现有数据库创建实体数据模型,

所以我在visual studio 2010中遵循以下步骤:

  1. 添加新项目 - >实体数据模型
  2. 选择"从数据库生成"
  3. 选择一个连接字符串,测试连接字符串及其确定
  4. 选择要导入的表,存储过程等,此时不显示任何表,但我确实选中了"表"选项 - 我假设它应该在这里列出我的表.

然后在这些步骤之后,实体数据模型可视化工具(即双击.edmx文件)显示没有表格 - 我的数据库中有表格,用户名和传递即时通讯使用连接有权访问这些表格.

谢谢.

entity-framework visual-studio-2010

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

如何在Settings.bundle中的xCode中添加额外的plist以与InAppSettingsKit iPhone库一起使用?

这可能是一个非常愚蠢的问题.但我正在努力:(

我正在尝试将Root.inApp.plist文件添加到我的项目中,以便我可以为我的iPhone应用程序设置inapp特定设置.

我已经很好地集成了InAppSettingsKit,它目前只使用一个Root.plist文件.我想将Root.inApp.plist文件添加到我的项目中,以便我可以使用inapp特定设置.

当我尝试添加其他的属性文件在Xcode它似乎没有Settings.bundle下坐,我怎么得到它在我这样的Settings.bundle结构显示出来?:

我希望其他plist出现在我的Settings.bundle下

我试图导入inappsettingskit包文件也没有运气:(我的项目由于某种原因无法识别Settings.bundle

请帮忙

iphone xcode cocoa-touch ios inappsettingskit

10
推荐指数
1
解决办法
4075
查看次数

在android中显示webview的缓存版本

我试图让网站的HTML5离线缓存版本在webview内部网络时显示.

我已经覆盖了onReceivedErrorok,当网络关闭时,会调用此方法.问题是它显示通用的"网页不可用"消息.

如何让它显示HTML5缓存版本的页面?webapp的离线存储肯定有效,因为它在桌面版Firefox和Chrome中运行良好.

我知道我可以loadData手动调用视图onReceivedError,但我不确定从哪里可以获得HTML5缓存值.

注:如果我在设置一些虚拟的数据loadData,例如view.loadData(Uri.encode("<html><div>Page load failed</div></html>"), "text/html", "UTF-8");,然后单击后退(通过检测回事件,并呼吁webview.goBack();然后显示ok了网页的缓存版本.

以下是我在设置webview时添加的一些代码行:

webview.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
webview.getSettings().setAppCacheMaxSize(1024*1024*8);                         
webview.getSettings().setAppCachePath("/data/data/com.stuff.android/cache");
webview.getSettings().setAllowFileAccess(true);
webview.getSettings().setAppCacheEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
webview.getSettings().setJavaScriptEnabled(true);
Run Code Online (Sandbox Code Playgroud)

html5 android offline-mode webview offline-caching

9
推荐指数
1
解决办法
5336
查看次数

Android模拟器的虚拟机加速

我正在尝试配置新的Android虚拟机加速.

我按照这里列出的步骤进行操作.我到了需要执行的地步:

<sdk>/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.exe.
Run Code Online (Sandbox Code Playgroud)

当我尝试为此运行安装程序时,它失败并说" VT不存在:您的计算机不符合此软件的最低要求 ".

我认为这是因为我有一个AMD CPU,并且所需的虚拟化扩展不可用.

所以我的问题是,是否有其他AMD软件可供我用它来实现这项功能?除了提到"AMD虚拟化(AMD-V,SVM)扩展(仅支持Linux)"之外,android开发站点似乎没有关于AMD的任何信息.我不明白他们为什么只支持Linux?

我热衷于让android模拟器感觉更快.

android emulation virtual-machine amd-processor

6
推荐指数
2
解决办法
1万
查看次数

使用Azure Active Directory进行身份验证 - 如何以编程方式接受用户凭据

有没有办法使用我自己的用户名和密码页面通过Web应用程序或web api登录Azure Active Directory(使用AD凭据)?

根据我的调查,似乎没有以编程方式发送用户名和密码来验证Azure AD用户(如果您在Azure之外托管应用程序)不确定他们是否认为这是某种安全漏洞(我不认为它是https被强制执行吗?)

看起来你只能通过代码授权来验证用户(这意味着弹出我们的应用程序以登录到外部站点).

最后,我想创建一个python flask api,如果可能的话,可以直接对Azure AD进行身份验证.我在过去(使用其他身份验证系统)使用Oauth grant_type =密码来发送用户名和传递,但不要认为Azure AD支持这个(如果我错了,请更正我?)我知道grant_type = client_credentials是支持的,但这似乎是服务auth的服务,这不是什么即时通过 http://msdn.microsoft.com/en-us/library/azure/dn645543.aspx

如果不可能在Azure之外托管一个登录页面,那么甚至可以在Azure中使用一个,看起来像这里的示例:http: //msdn.microsoft.com/en-us/library/azure/bc8af4ff-66e7-4d5b-b3d4-c33d2c55d270#BKMK_Browser 没有带密码字段的自定义登录页面..(只显示打开的id登录)

python authentication oauth azure azure-active-directory

5
推荐指数
1
解决办法
5348
查看次数

在查询其子节点之一时使用 jq 返回父节点

想知道在查询子“Id”时是否可以从下面的 json 返回父“Id”

{
    "DistributionList": {
        "Items": [
            {
                "Origins": {
                    "Items": [
                        {
                            "Id": "abc"
                        }
                    ],
                    "Quantity": 1
                },
                "Id": "parent123"
            },
            {
                "Origins": {
                    "Items": [
                        {
                            "Id": "def"
                        }
                    ],
                    "Quantity": 1
                },
                "Id": "parent345"
            }
         ]
    }
}
Run Code Online (Sandbox Code Playgroud)

例如。如果我查询子 ID“abc”,它应该返回“parent123”。

做类似的事情:

more jsonfile | jq '.DistributionList.Items[].Origins.Items[] | select(.Id == "abc") | .Id'
Run Code Online (Sandbox Code Playgroud)

只会返回“abc”->但我需要父ID。不确定是否有办法用 jq 做到这一点

unix bash shell json jq

5
推荐指数
1
解决办法
1792
查看次数

Next.js 架构

我正在寻找一些 Next.js 架构建议

我正在将一个非常大的 Express NodeJS 应用程序迁移到 Next.js 设置,该应用程序具有自定义 SSR 设置。

对于当前的 NodeJS 站点,我有:

  • 一堆路由(连接控制器/apis,做花哨的重定向等)
  • 有大量的中间件
  • 一堆 express 控制器中的大量逻辑(这些控制器执行 API 调用、转换数据、验证和某些 React 组件的 SSR 以形成应用程序)
  • 大多数情况下,NodeJS 服务器调用其他微服务 API(在同一个 VPC 上)来获取这些控制器内的数据(例如:search api、auth api、location api 等 - 它们都是单独的 REST api 服务器)注意:当它从这些 API 仅在内部 api 地址上完成
  • 当路由发生变化时,React 网站本身调用相同的 NodeJS 服务器以通过客户端 JS 获取数据eg:前端 URL 将是:www.mywebsite.com.au 并且从前端完成的任何 api 调用都是通过路由完成的:www.mywebsite.com.au/api/*

根据我迄今为止阅读的所有文档,我认为最佳设置是:

  1. 为了保持我现有的路由/中间件(我有很多)的快速设置,这包括/api/*那些
  2. 将控制器获取逻辑迁移到可公开访问的 express api /api/*(我已经拥有但需要清理)
  3. 对于现有的快速控制器路由,将它们路由到 Next.js 并用于nextApp.render特定的下一页
  4. getInitialProps在 Next.js 页面中使用从我在 2 中提到的那些 …

javascript architecture node.js reactjs next.js

5
推荐指数
1
解决办法
2876
查看次数

使用hierarchyid查找所有叶节点记录

我将如何仅查询"仅叶子节点"(即没有孩子)的记录?

我尝试过这样的查询:

select *
from TableA tt
where tt.HierarchyId.GetDescendant(null, null) not in 
(
    Select  t.HierarchyId
    from TableA t
)
Run Code Online (Sandbox Code Playgroud)

但这仍然似乎返回了一些有孩子的节点.

我正在使用内置的hierarchyid数据类型(ms sqlserver的一部分)

sql-server hierarchyid sql-server-2008

3
推荐指数
1
解决办法
3091
查看次数