对于此示例,我使用React与Dexie.js。我有一个代码zanzibar,它在运行时会将我的IndexDB中的对象列表添加到页面中。我想添加两件当前的东西。
首先,找到我的数据库的ID似乎存在问题。例如,当我在peaches函数下运行public class email
{
public void enviar(string destinatario, string asunto, string contenido)
{
Execute(destinatario, asunto, contenido).Wait();
}
static async Task Execute(string destinatario, string asunto, string contenido)
{
string apiKey = "SG...............";
dynamic sg = new SendGridAPIClient(apiKey);
Email from = new Email("someone@example.com");
string subject = asunto;
Email to = new Email(destinatario);
Content content = new Content("text/plain", contenido);
Mail mail = new Mail(from, subject, to, content);
dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
}
时,它返回console.log(amigo.id)
。我也没有在indexDB面板上看到ID。
其次,既然我能够通过click函数运行它,我还想通过undefined
加载我的indexDB数据。这样做的目的是在页面加载时将indexDB上的所有内容加载到我的页面。我的componentDidMount
函数应该这样做,虽然我不太确定如何贯彻。
peaches
包含在JSFiddle中 https://jsfiddle.net/jgwhxuam/
答案 0 :(得分:1)
我对Dexie.js并不熟悉,但我认为我设法得到了你要求的成就。
更新小提琴:https://jsfiddle.net/jgwhxuam/2/
首先,我将此块移到顶部,这样您就不会重复自己(" DRY")。
var datastoring = new Dexie('MySpace');
datastoring.version(1).stores({friends: '++id, name, age'});
datastoring.open().catch(function(err){ alert('Oh no son:' +err) });
然后,我将您的getInitialState
结果调整为空数组,以便它不会在dom上渲染一些空格(使用项目符号等)。
我使用它来获取存储的indexedDB数据并将其输入到状态,而不是将结果记录在peaches
函数中。我添加了.then()
来完成此任务。当componentDidMount()
运行时,它应该将列表作为结果呈现。
我刚刚合并的zanzibar
函数并使用peaches函数来更新状态。
renderResults
函数我向下移动到render
函数。没必要,但帮我调试。
如果您有任何疑问,我可以修改此答案。祝你好运!