现在我正在发现Este.js并且我对同构应用程序有一个小问题。我不明白如何在使用 renderToString() 渲染服务器端之前进行 api 调用。
一种解决方案是使用 React Router 在路由器级别进行所有数据获取。根据顶级路由,我可以预测需要哪些数据,进行 api 调用,然后调用 React.renderToString。
很好,但我仍然必须在组件级别和路由器级别声明数据依赖项。我最终编写了两次相同的代码,而且我认为这不是最好的方法。
编辑:好的,现在我可以做一些我想做的事情。使用 React-Router 和这个链接我已经能够做到以下几点:
给这个全局应用状态,我想在指向 /todos 时预取 todos
{
auth: {
data: null,
form: null
},
examples: {
editable: {
state: null,
text: 'Some inline-editable text.'
}
},
i18n: {
formats: {},
locales: initialLocale,
messages: messages[initialLocale]
},
pendingActions: {},
todos: {
editables: {},
newTodo: {
title: ''
},
list: [{
id: 1,
title: 'first todo yipiyo'
}]
},
users: {
viewer: null
} …Run Code Online (Sandbox Code Playgroud) 我正在测试一些特殊的东西,我正在尝试在关键帧内循环以动态地将百分比写入其中.
我用SASS测试了类似的东西,但它不起作用.
@keyframes test{
@for $i from 0 through 100 {
#{$i}% {
//do special stuff
}
$i: $i + 1;
}
Run Code Online (Sandbox Code Playgroud)
我希望它输出:
@keyframes test{
0%{
...
}
1%{
...
}
2%{
...
}
3%{
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了
Error on line number: 23. Invalid CSS after " #{$i}%": expected placeholder name, was " {"
Run Code Online (Sandbox Code Playgroud)
我已经在LESS测试了这个,它也不起作用.
@a: 0%;
@keyframes test{
.func (@a, @b, @c);
}
.func (@a, @b, @c) when (@a < 100%){
(@a){
//do special stuff
}
.func …Run Code Online (Sandbox Code Playgroud)