我最近开始进行网络开发。我陷入了困境,这可能是一个微不足道的问题。我试图弄清楚如何将数据从动态创建的数据传递index.html到我的(打字稿)反应前端(通过创建create-react-app)。
假设我们有一个 Flask Web 服务器,当请求“/”资源时,它会收集一些初始用户数据,用它实例化一个页面模板并返回该页面:
# flask webserver
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route('/')
def index():
initial_user_data = {"foo":"bar",
"baz":"biz"}
return render_template('index.html', initial_data=initial_user_data)
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
为了简单起见,initial_user_data在这里存储硬编码数据。在我的实际用例中,字典中填充了从文件等读取的各种特定于用户的数据项。
接下来,我们假设index.html使用initial_data.
<!DOCTYPE html>
<html lang="en">
<head>
...
<title>React App</title>
</head>
<body>
<script>
initial_data = {{initial_data | tojson}}
console.log(initial_data)
</script>
<div id="root"></div>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我们现在启动网络服务器并打开浏览器导航到该页面时,可以看到正在initial_data记录到浏览器的控制台输出。到目前为止,一切都很好。
现在我的问题是:如何传递initial_data给我的(打字稿)反应组件?从概念上讲,我想做这样的事情:
// App.tsx
import React from …Run Code Online (Sandbox Code Playgroud) 我想默认禁用一组测试,但能够在明确定位时运行它们。
例如,假设我有一个项目,其中包含许多通过add_test(NAME SomeNameHere COMMAND SomeCommandHere)命令添加的快速运行的单元测试。并进一步假设还有一堆长时间运行的集成测试应该从默认ctest运行中排除,但是当明确定位时,应该可以使用单个命令运行所有集成测试。
作为一个具体的例子:
TestThatShouldAlwaysRun - 我希望它在用户运行时运行 $ ctestFooIntegrationTest - 我希望它只在用户运行时运行$ ctest --some-option-here integrationBarIntegrationTest - 我希望它只在用户运行时运行$ ctest --some-option-here integration这是我实现这一目标的尝试。
cmake_minimum_required (VERSION 3.1)
project (HOW_TO_RUN_DISABLED_TESTS NONE)
enable_testing()
# Add a fast running test
# This test should be run when a user runs: 'ctest'
add_test(NAME TestThatShouldAlwaysRun COMMAND echo 'I am always enabled')
# Add a long-running integration test
# This test should be run when a …Run Code Online (Sandbox Code Playgroud)