我正在尝试学习 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) 有没有一种免费的方法来使用c#为我的Galaxy Tab(Androind 2.2)开发应用程序?或者只有付费解决方案吗?
我正在编写一个处理人员任务的小应用程序.非常简单,但就桌面设计而言,我所坚持的区域是一个重复性任务的情况,可以是一次性,每天,每周或每月.如果每周一次,那就是特定的一天,每周一次.每月是特定的一天.
我有一个任务表和一个recurring_type_id,并且将在代码中处理重复的任务,但这是理想的方法吗?另一种方法是在创建任务时插入所有任务 - 每个事件时间.但这似乎也不正确.
任何人都可以就设计提出建议,以及如何以可维护和有效的方式处理这个问题?
我正在使用SQL Server 2008 R2
我有一个表,用于保存项目中的人员的数据.该表的Start日期字段为可以为空的End日期字段.所以,一个人从一个项目Start到End.
目前,他们总是对项目收费.但是我现在有了一个新的要求,即在一段时间内,它们可以是不可计费的,但仍然在进行该项目.因此,他们已被分配到项目中并且正在工作,但由于某种原因,客户不会在分配期间的一部分时间收费,或者可能以较低的费率收费.
我的想法是有一个排除类型表,链接到具有开始日期和结束日期的人员分配表,以及一个Rate列,可以设置为零免费,或者作为覆盖值一段时间.
这看起来像是有效的设计吗?由于该人在95%的时间内被收费,并且可能永远不会被排除在外,因此我有一个排除表更有意义.
如果有人知道如何做得更好,那就太好了.
目前,我还有一个"日历"表,我根据人员日程安排的开始/结束日期加入,以获得每日费率.那么,我可以加入排除日期,看看是否有覆盖率?
我可能会在设计中发现的问题是很多连接基于:
ON DateValue BETWEEN Start AND End
Run Code Online (Sandbox Code Playgroud)
而且我不确定它们是最有效的连接.
我有一个接受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中有一个更简洁,更可接受的模式.
我正在尝试学习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关系-同样的问题。
也许接口必须进入某个共享项目中?还是有一个项目?应该如何处理?
在我的应用程序中,用户输入两个日期.计划的开始日期和计划的结束日期.我们必须采用这些日期,并根据差异填充4个字段.
所以,让我们说他选择2010年1月1日作为开始,2011年3月2日作为结束,我们需要最终:
年:1个月:2周:0天1
意思是总持续时间为1年,2个月和1天.
有这样做的标准方法吗?或者我是否需要编写一个具有很多非常棘手的逻辑的方法来解决它?我希望我很幸运,并且会有一个date-diff类型.Net类可用.
我需要编写一个执行此操作的查询:
SELECT TOP 1
FROM a list of tables (Joins, etc)
ORDER BY Column X, Column Y, Column Z
Run Code Online (Sandbox Code Playgroud)
如果ColumnX是NOT NULL,那么此刻我会重新选择,使用略有不同的ORDER BY.
所以,我做同样的查询,两次。如果第一个NULL在某个列中有 a ,我会从我的过程中返回该行。但是,如果值不是NULL- 我必须做另一个相同的选择,除了按不同的一两列排序。
我现在要做的是第一次将其选入临时表。然后检查列的值。如果没问题,则返回临时表,否则,重做选择并返回该结果集。
更多细节:
用英语,我问数据库的问题:
返回我某些出庭的所有结果(通过索引外键)。我预计大约有 1000 行。按出现日期(列,未编入索引,可为空)排序,最后出现在最前面。检查“importId”。如果前 1 行的导入 ID 不为 NULL,那么我们需要运行相同的查询 - 但这次,按导入 ID(最后一个在前)排序,并返回该行。否则,只需返回原始查询的前 1 行。
当我从我视图中的帐户列表中选择一个帐户时,该URL显示如下内容:
http://example.com/BankAccount/EditBankAccount?bankAccountId=12
有没有办法隐藏主键,因为北方阻止某人编辑URL中的ID并发布它,以获得一个不同的帐户.
我可以添加代码以查看当前用户是否可以查看此帐户,但有更好的方法吗?
我有一个查询,运行时,结果是即时的。
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 ×5
c# ×4
sql-server ×3
.net ×1
android ×1
asp.net-mvc ×1
date ×1
javascript ×1
linq ×1
reactjs ×1
sql-order-by ×1
t-sql ×1
timespan ×1
url ×1