我知道关于这个主题有很多问题(React 无限滚动),我的问题旨在更深入地确定当前可用的最佳解决方案来实现这样的组件。
我正在开发一个聊天应用程序,我创建了一个类似于 Facebook Messenger 聊天窗口的组件,您可以在桌面浏览器上看到它。
Facebook:
我的(到目前为止):
实现无限加载的无限滚动结果是很棘手的。从用户体验的角度来看,我需要始终至少满足以下属性:
现在,为了做到这一点,我已经尝试了几个库:
react-list组件的错误。此外,该组件不允许我向上显示滚动底部(参见https://github.com/coderiety/react-list/issues/50);List与InfiniteLoader一起AutoSizer,CellMeasurer和CellMeasurerCache。此外,当我发送消息时,如果我调用List.scrollToIndex(lastIndex)自动将容器滚动到底部,滚动不会完全到达底部,因为可滚动容器具有顶部和底部填充。我无法使用此组件获得令人满意的结果。所以我的问题更像是一种相互对抗的方式:你们中的某个人是否曾经需要根据我上面写的 3 个要求来实现一个 React 聊天组件?你用的什么库?由于 Facebook Messenger 处理得很好并且他们使用 React,你们中有人知道他们是如何实现这样的组件的吗?如果我检查 Facebook 聊天窗口的聊天消息,它似乎将所有已呈现的消息保留在 DOM 中。但是,如果是这样,这不会影响性能吗?
所以我现在的问题多于答案。我真的很想找到一个适合我需要的组件。另一种选择是实现我自己的。
我正在尝试在存储过程中创建视图,但是遇到错误。
我的代码是:
alter PROCEDURE p.Azmoon1
AS
begin
EXEC ('IF OBJECT_ID (''r.r_Sales01_Requests__Duplicates'', ''V'') IS NOT NULL
DROP VIEW r.r_Sales01_Requests__Duplicates ;
go
create view r.r_Sales01_Requests__Duplicates (
CompanyID
,Branch
,Year
,VoucherType,VoucherNumber
,Date_Persian
,Row
) as
select
CompanyID
,Branch
,Year
,VoucherType,VoucherNumber
,Date_Persian
,Row
from t_SalesRequests
group by CompanyID,Branch,Year,VoucherType,VoucherNumber,Date_Persian,Row
having count(*)>1
go
')
end
Run Code Online (Sandbox Code Playgroud)
当我像下面这样调用程序时:
execute p.Azmoon1
Run Code Online (Sandbox Code Playgroud)
我收到这些错误:
'go'附近的不正确语法
'CREATE VIEW'必须是查询批处理中的第一条语句。
超出最大存储过程,函数,触发器或视图嵌套级别(限制32)。
我想使用简单的LINQ命令从我的表"Header"中选择数据,但我遇到了错误.
我的行动
public HeaderModel GetHeaderInformation()
{
using(var context = new ApplicationDbContext())
{
var header = context.Headers.Select(x => new HeaderModel
{
colorCode = x.colorCode,
height = x.height,
Id = x.Id,
left = x.left,
top = x.top,
width = x.width
}).FirstOrDefault();
return header;
}
}
Run Code Online (Sandbox Code Playgroud)
错误
附加信息:尚未为此DbContext配置数据库提供程序.可以通过覆盖DbContext.OnConfiguring方法或在应用程序服务提供程序上使用AddDbContext来配置提供程序.如果使用AddDbContext,那么还要确保您的DbContext类型在其构造函数中接受DbContextOptions对象,并将其传递给DbContext的基础构造函数.
我的ApplicationDbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options) { }
public ApplicationDbContext() : base() { }
public DbSet<Header> Headers { get; set; }
public DbSet<Menu> Menus { get; set; }
} …Run Code Online (Sandbox Code Playgroud) 客户端我使用 Angular 6,服务器端我使用 node.js。
在 angular 6 控制台中,它会socket.io id({message: "Hello World", id: "6An-ctwlwbZZWrfMAAAB"})
在使用以下代码后打印消息
。
此代码是正确的或此代码中的任何更改 bcoz 我不确定此代码,请帮助纠正此问题。
另一个问题是我的项目中有超过 15 个组件,所以如何将它socket.io用于所有组件,或者我必须app.component.ts在所有其他组件中导入此代码。
app.js(服务器端)
after installing (npm i socket.io)
const express = require('express');
var app = express();
const http = require('http');
const socketIo = require('socket.io');
const server = http.Server(app);
const io = socketIo(server);
server.listen(3000,function(req,res){
console.log("listen at 3000!");
});
io.on('connection',(socket) => {
socket.emit('hello',{
message : 'Hello World',id: socket.id
})
});
Run Code Online (Sandbox Code Playgroud)
app.component.ts(客户端)
after installing (npm i socket.io)
import * …Run Code Online (Sandbox Code Playgroud) 首先,我很抱歉,这是我第一次在论坛上提问,我的英语说得不太好...我正在使用 Ionic 3 开发一个应用程序,当我尝试时遇到此错误使用 firebase :
Firebase:未创建 Firebase 应用程序“[DEFAULT]” - 调用 Firebase App.initializeApp() (app/no-app)
这是我的文件:
应用程序模块.ts:
import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';
import { AngularFireModule } from 'angularfire2';
import { AngularFireAuthModule } from 'angularfire2/auth';
import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import {TabsPage} from "../pages/tabs/tabs";
import {ListPage} from …Run Code Online (Sandbox Code Playgroud)