场景是,当我从构造函数或componentDidMount调用动作函数时,它会完美运行。
1:
class AddOrder extends Component {
constructor(props){
super(props);
const data={
currency: 'btc',
price: '1',
quantity: '2',
}
this.props.adder(data);
}}
2:
class AddOrder extends Component {
constructor(props){
super(props);
const data={
currency: 'btc',
price: '1',
quantity: '2',
}
componentDidMount(){
this.props.adder(data);
}
}}
此加法器为:
import ipfs from '../../helper/ipfsConnection';
export const adder = (data) => async => {
for (let currency of data.keys()) {
console.log(data.get(currency))
}
ipfs.on('ready', () => {
console.log("inside ipfs");
});
}
在1和2调用中,它都可以通过合并数据并输入ipfs来完美地工作。 但是,当我通过onSubmit / onClick调用此动作函数时:
handleSubmit =(event) => {
event.preventDefault();
const data = new FormData(event.target);
this.props.adder(data);
}
使用html:
<form onSubmit={this.handleSubmit.bind(this)}>
<label htmlFor="currency">Enter currency</label>
<input id="currency" name="currency" type="text" />
<label htmlFor="price">Enter your price</label>
<input id="price" name="price" type="number" />
<label htmlFor="quantity">Enter your quantity</label>
<input id="quantity" name="quantity" type="number" />
<button>Send data!</button>
</form>
以这种方式调用this.props.adder(data)
不能正常工作。
import ipfs from '../../helper/ipfsConnection';
export const adder = (data) => async => {
for (let currency of data.keys()) {
console.log(data.get(currency))
}
ipfs.on('ready', () => {
console.log("inside ipfs");
});
}
它进入此函数并控制传递的参数,但不进入ipfs内部。为什么它没有进入ipfs对象? 我没有得到要点,为什么它没有发生。