使用 Next.js,我试图在 Context API 状态中获取数据后将它们保存在 中getInitialProps,以修复道具钻孔。
但由于getInitialProps是静态方法,我们无法通过 this.context 访问它。我设法将它们保存在 componentDidMount 中,但在这种情况下,上下文状态在第一页加载时为空,直到填充为止。不确定在这种情况下的最佳做法是什么。我应该在哪个生命周期中将初始数据保存到 Context 以便像 props 传递一样立即获得它们?
所以,今天我们在项目负责人和程序员之间进行了长时间的交谈,我们应该为我们的新项目运行一个包含所有表的数据库,还是运行多个数据库,每个数据库存储一组模块。
项目是关于商店的,我们有单独的(我们称之为模块),比如用户、支付方式、产品、统计。
现在一方面说我们应该把它全部放在一个数据库中(它的标准程序),因为它会更快,一个查询就可以获得所有数据,而另一方说我们应该将它拆分到多个数据库中,以便它更多安全,如果有人破坏产品内部,他们不会看到用户表,因为该数据库将位于不同的服务器或虚拟机上。
所以我的问题是,拥有多个数据库的所有数据与拥有单个数据库的优缺点是什么。我读了几个关于堆栈溢出的问题,但没有一个是关于利弊的。如果拥有多个数据库速度较慢,如何加快速度?
谢谢!
我正在使用这个脚本: https://github.com/goranefbl/jquery.tiny.modal/blob/master/jquery.tinymodal.js
在我的一项按下按钮时触发的函数中,这个:
function fireLightbox(quarter,room_id,otherRoom) {
$.tinyModal({
title: "Room is free, want to book now?",
html: '#bookRoom',
buttons: ["Book"],
Book: bookTheRoom(quarter) // <- the issue
});
}
Run Code Online (Sandbox Code Playgroud)
上面灯箱内出现的“书籍”按钮应该执行下面的函数,但是当上面的函数加载时它会立即触发。
function bookTheRoom(quarter) {
console.log(quarter);
}
Run Code Online (Sandbox Code Playgroud)
我需要它。单击按钮后执行,而不是执行第一个“fireLightbox”函数后执行。
也尝试过这样,它不执行它,但也不传递变量,尽管这对我来说是有意义的,它不起作用
function fireLightbox(quarter,room_id,otherRoom) {
$.tinyModal({
title: "Room is free, want to book now?",
html: '#bookRoom',
buttons: ["Book"],
Book: function(quarter) {
console.log(quarter);
bookTheRoom(quarter);
}
});
}
Run Code Online (Sandbox Code Playgroud)
当然,如果我不带 () 调用它,函数就可以正常工作,但我没有参数。
所以我有这个HTML代码:
<div class="panel-radioimage">
<div class="radio-image-wrapper">
<label for="1"><img src="http://127.0.0.1/wordpress/wp-content/themes/bluestudio5/images/patterns/1.png" alt="image" class="admin-patterns">
<div class="check-list"></div></label>
<input class="farm_img_pattern" type="radio" name="farm_img_pattern" value="1.png" checked>
</div>
Run Code Online (Sandbox Code Playgroud)
我在页面上有这些元素很少,并且我想在页面加载时检查输入时将类"checked-list"添加到类"check-list".所以我尝试过以前使用click事件的方法:
if(jQuery('.farm_img_pattern').is(':checked')){
jQuery(this).parent().find(".check-list").addClass("checked-list");
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.问题是"这个"任何人都知道在页面加载时获取已检查元素的解决方案?
我有一个非常奇怪的问题.我正在创建一个日期对象数组(星期一)
// array to hold week commencing dates
var mondays = [];
mondays.push(today);
var novi = new Date(today);
while(novi < endDate){
var next_monday = new Date(novi.setDate(novi.getDate() + 7));
day_index = next_monday.getDay();
if(day_index == 1){
mondays.push(next_monday);
}
// increment the date
novi = next_monday;
}
console.log(mondays);
Run Code Online (Sandbox Code Playgroud)
更新:谢谢你的回复.我在开始时创建了新对象并使用了那个.所以我再次创建空数组,然后在开始循环之前向它添加一个日期,然后循环中的第一个项目不会被添加,即使它被推送.我究竟做错了什么?
这是我从上面得到的console.log. https://www.dropbox.com/s/04bckfcrwl7yvwd/Screenshot%202016-09-28%2018.29.25.png?dl=0
几个月前我问过这个问题,但当时我需要拉一个会员级别,现在我需要拉出每个级别的名字,这里是数组:
Array
(
[success] => 1
[member] => Array
(
[0] => Array
(
[Levels] => Array
(
[1391447566] => stdClass Object
(
[Level_ID] => 1391447566
[Name] => Team Membership
[Cancelled] =>
[CancelDate] =>
[Pending] =>
[UnConfirmed] =>
[Expired] =>
ExpiryDate] => 1397266537
[SequentialCancelled] =>
[Active] => 1
[Status] => Array
(
[0] => Active
)
[Timestamp] => 1394588137
[TxnID] => WL-1-1391447566
)
[1391540448] => stdClass Object
(
[Level_ID] => 1391540448
[Name] => Gold Training Membership
[Cancelled] =>
[CancelDate] => …Run Code Online (Sandbox Code Playgroud)