小编Cra*_*aig的帖子

尝试使用 Context API 时看到“render is not a function”

我正在尝试学习 Context API,我想要实现的是在我的标题中显示登录用户,以及根据登录状态操作我的菜单选项(将“isAuthenticated”存储在状态?)

我的上下文类:

import React from 'react';

const Context = React.createContext();

export class Provider extends React.Component {

    state = {
        isAuthenticated: true,
        user: {
            name: "Joe Smith",
            email: "joe.smith@here.com"
        }
    }

    render() {
        return (
            <Context.Provider value={this.state}>
                {this.props.children}
            </Context.Provider>
        )
    }
}

export const Consumer = Context.Consumer;
Run Code Online (Sandbox Code Playgroud)

所以,非常基础。设置一个状态,以后在一些子组件中,我想显示chaps名称。

我的 App.js 是 using 'Provider',所以我的所有组件都可以访问这些数据:

import React from 'react';
import { HashRouter , Route, Switch } from 'react-router-dom';
import Home from './components/home';
import Header from './components/header';
import Accounts from './components/accounts';
import …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

使用c#进行Android开发

有没有一种免费的方法来使用c#为我的Galaxy Tab(Androind 2.2)开发应用程序?或者只有付费解决方案吗?

c# android

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

"重复任务"的设计选项

我正在编写一个处理人员任务的小应用程序.非常简单,但就桌面设计而言,我所坚持的区域是一个重复性任务的情况,可以是一次性,每天,每周或每月.如果每周一次,那就是特定的一天,每周一次.每月是特定的一天.

我有一个任务表和一个recurring_type_id,并且将在代码中处理重复的任务,但这是理想的方法吗?另一种方法是在创建任务时插入所有任务 - 每个事件时间.但这似乎也不正确.

任何人都可以就设计提出建议,以及如何以可维护和有效的方式处理这个问题?

我正在使用SQL Server 2008 R2

sql sql-server

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

支付表设计

我有一个表,用于保存项目中的人员的数据.该表的Start日期字段为可以为空的End日期字段.所以,一个人从一个项目StartEnd.

目前,他们总是对项目收费.但是我现在有了一个新的要求,即在一段时间内,它们可以是不可计费的,但仍然在进行该项目.因此,他们已被分配到项目中并且正在工作,但由于某种原因,客户不会在分配期间的一部分时间收费,或者可能以较低的费率收费.

我的想法是有一个排除类型表,链接到具有开始日期和结束日期的人员分配表,以及一个Rate列,可以设置为零免费,或者作为覆盖值一段时间.

这看起来像是有效的设计吗?由于该人在95%的时间内被收费,并且可能永远不会被排除在外,因此我有一个排除表更有意义.

如果有人知道如何做得更好,那就太好了.

目前,我还有一个"日历"表,我根据人员日程安排的开始/结束日期加入,以获得每日费率.那么,我可以加入排除日期,看看是否有覆盖率?

我可能会在设计中发现的问题是很多连接基于:

 ON DateValue BETWEEN Start AND End
Run Code Online (Sandbox Code Playgroud)

而且我不确定它们是最有效的连接.

sql database-design

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

Linq带有可选的WHERE选项

我有一个接受3个参数的.Net函数,都是可选的.像这样的东西:

public List<MyObject> Search(string colour, string size, string name)
{
     var result = (from c in MyTable where .... select c).ToList();     
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,做这where部分的最佳方法是什么.最好是创建动态linq吗?在linq中,具有可选where参数的最佳模式是什么?

所以,在SQL中,这样的事情:

SELECT *
FROM MyTable
WHERE (@colour <> '' AND colour = @colour)
  AND (@size <> '' AND size = @size)
  AND (@name <> '' AND name = @name)
Run Code Online (Sandbox Code Playgroud)

但我希望在linq中有一个更简洁,更可接受的模式.

c# sql linq

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

依赖注入和项目参考

我正在尝试学习DI,以更好地了解IoC和其他好处。

在DI之前,我有一个项目,其中有一个UI项目(MVC),一个BusinessLogic项目和一个DataAccess项目。我也有一个SharedLib项目。所有项目都引用SharedLib。UI引用了BusinessLogic,而BusinessLogic引用了DataAccess。

我现在要添加接口。因此,我进入DataAccess,为每个类添加一个接口,并使用其方法填充它们。我对业务逻辑层也做同样的事情。

但是为了注入DataAccess类(我在UI项目的BusinessLogic类中实例化),我需要引用我的Data项目,因为UI项目(我认为正确)不知道“ IDataAccess”接口是什么。我能看到的唯一解决方法是在UI中向我的DA项目添加项目引用-这似乎是错误的。

而且,如果我尝试将Unity添加为容器(以后的一天,一旦我确定了所有的工作原理),并且想在UI项目中初始化我的Interface / Class关系-同样的问题。

也许接口必须进入某个共享项目中?还是有一个项目?应该如何处理?

c# dependency-injection

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

计算年,月,周和日

在我的应用程序中,用户输入两个日期.计划的开始日期和计划的结束日期.我们必须采用这些日期,并根据差异填充4个字段.

所以,让我们说他选择2010年1月1日作为开始,2011年3月2日作为结束,我们需要最终:

年:1个月:2周:0天1

意思是总持续时间为1年,2个月和1天.

有这样做的标准方法吗?或者我是否需要编写一个具有很多非常棘手的逻辑的方法来解决它?我希望我很幸运,并且会有一个date-diff类型.Net类可用.

.net c# timespan date

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

取决于列值的条件 ORDER BY

我需要编写一个执行此操作的查询:

SELECT TOP 1 
FROM a list of tables (Joins, etc)
ORDER BY Column X, Column Y, Column Z
Run Code Online (Sandbox Code Playgroud)

如果ColumnXNOT NULL,那么此刻我会重新选择,使用略有不同的ORDER BY.

所以,我做同样的查询,两次。如果第一个NULL在某个列中有 a ,我会从我的过程中返回该行。但是,如果值不是NULL- 我必须做另一个相同的选择,除了按不同的一两列排序。

我现在要做的是第一次将其选入临时表。然后检查列的值。如果没问题,则返回临时表,否则,重做选择并返回该结果集。

更多细节:

用英语,我问数据库的问题:

返回我某些出庭的所有结果(通过索引外键)。我预计大约有 1000 行。按出现日期(列,未编入索引,可为空)排序,最后出现在最前面。检查“importId”。如果前 1 行的导入 ID 不为 NULL,那么我们需要运行相同的查询 - 但这次,按导入 ID(最后一个在前)排序,并返回该行。否则,只需返回原始查询的前 1 行。

sql t-sql sql-server sql-order-by sql-server-2008

4
推荐指数
1
解决办法
5780
查看次数

显示主键是一种危险

当我从我视图中的帐户列表中选择一个帐户时,该URL显示如下内容:

http://example.com/BankAccount/EditBankAccount?bankAccountId=12

有没有办法隐藏主键,因为北方阻止某人编辑URL中的ID并发布它,以获得一个不同的帐户.

我可以添加代码以查看当前用户是否可以查看此帐户,但有更好的方法吗?

url asp.net-mvc

4
推荐指数
1
解决办法
355
查看次数

查询速度快,但在 VIEW 中时,速度很慢 - 由于 ROW_NUMBER

我有一个查询,运行时,结果是即时的。

However, I paste the exact same query into VIEW, and the results take 6 seconds to reply.

For example,

SELECT ... FROM MyTables WHERE PersonID = x
Run Code Online (Sandbox Code Playgroud)

runs fast.

But create a view with:

SELECT ... FROM MyTables 
Run Code Online (Sandbox Code Playgroud)

And then call the view:

SELECT * FROM MyView WHERE PersonID = x
Run Code Online (Sandbox Code Playgroud)

And it runs slow.

Actual Query:

select ROW_NUMBER() over(partition by h.Id order by h.[SysStartTime]) as VersionNUmber,
      h.Id,
      fac.HIC,
      ... plus 18 other columns from the joined tables.

from …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2016

4
推荐指数
1
解决办法
2990
查看次数