如果我正在创建一个组件,似乎你可以用很多不同的方式创建一个类.这些有什么区别?我怎么知道使用哪一个?
import React, {Component} from 'react'
export default class Header extends Component {
}
export const Header = React.createClass({
})
export default React.createClass({
})
Run Code Online (Sandbox Code Playgroud)
我只是假设他们做了不同的事情,还是仅仅是不同的语法?
如果有人能给我一个快速解释或链接,我会非常感激.我不想从一个新的框架开始,不知道究竟有什么区别.
在 python 中导入模块时遇到一些问题。这是我的文件夹结构
my_app/
app.py
__init__.py (I want to import a function from this file)
folder1/
__init.py
method1.py
folder2/
__init__.py
method.py
Run Code Online (Sandbox Code Playgroud)
在我的根中,__init__.py
我有这个功能
def want_to_be_run_elsewhere():
pass
Run Code Online (Sandbox Code Playgroud)
在我的 app.py 中,我想导入这个函数并在我启动我的应用程序时运行它,但我不确定如何去做。
from my_app import want_to_be_run_elsewhere
Run Code Online (Sandbox Code Playgroud)
这会抛出一个名为 my_app 的无模块
据我所知,我拥有所有必要的__init__.py
文件,所以它可能与 sys.path 相关?
我在这里阅读了一些类似的主题,但我无法解决这个问题。
我最近开始和React一起工作,即使我经常遇到问题,我也很享受.
组件#1,我通过单击按钮发出GET请求,然后在表格中显示一些数据.
组件#2是一个输入字段,我想输入一些数据,并在下面显示,应该是简单的吗?
当我发出一个动作并完成我的GET请求时,状态如下所示:
{
isFetching: false,
isPressed: true,
items: [{item: 1}, {item: 2}, {item: 3}]
}
Run Code Online (Sandbox Code Playgroud)
然后我想导航到我的其他组件.我需要取消订阅吗?因为当我导航到我的另一个组件所在的另一个页面时,状态将保持不变.
如果我在我的组件#2上发送一个动作,状态如下所示:
[
{id: 1, text: 'foo'},
{id: 2, text: 'bar'}
]
Run Code Online (Sandbox Code Playgroud)
在这两个组件中,我使用的是mapStateToPros,尽管我并不真正理解它是如何工作的,这就是我相信我遇到问题的地方和原因.
function mapStateToProps(state) {
return state;
}
Run Code Online (Sandbox Code Playgroud)
它只是返回现在的状态.当我在组件之间切换时,我会收到错误消息.如果我在我的组件#2上发送一个动作,然后尝试导航到我的组件#1(GET-REQUEST),我将得到以下内容:
prev state Object { isFetching=false, isPressed=true, items=[10]}
action Object { type="ADD_TODO", id=0, text="asd"}
next state [Object { id=0, text="asd"}]
Run Code Online (Sandbox Code Playgroud)
导航到其他页面
Error: `mapStateToProps` must return an object. Instead received [object Object].
Run Code Online (Sandbox Code Playgroud)
应该如何在我的场景中使用mapStateToProps?
我需要使用componentWillUnmount吗?取消订阅我的商店?
我觉得我可以问一百个问题,但我不会.我一直在阅读文档,但我仍然想弄明白.
任何关于思想过程的链接,建议以及其他有用的东西都非常适合.
编辑:
这是我的减速机:
正如 …
我正在尝试将文件上传到我的服务器.但我不确定如何使用readAsArrayBuffer来做到这一点.如果我使用readAsBinaryString,这是有效的.
如果我尝试console.log它只返回'arrayBuffer:{}'. 在我尝试上传之后,我可以看到内部帖子中只发送了一个空对象.如果我使用readAsBinaryString,我会看到一堆二进制代码.
var file = document.getElementById('my_file').files[0],
reader = new FileReader();
reader.onloadend = function(e){
console.log(e.target.result);
$scope.image = e.target.result;
}
reader.readAsArrayBuffer(file);
Run Code Online (Sandbox Code Playgroud)
我怎么能看到我的文件,所以我知道它在使用readAsArrayBuffer时有效?如果需要更多代码,请告诉我!谢谢.