我似乎无法从API将对象推送到状态数组.这是我的代码
async _fetchData(number){
try{
await console.log('asd',number)
let response = await fetch( 'https://www.beanlinked.com/wp-json/wp/v2/media/'+this.state.News[number].featured_media)
let responseJson = await response.json()
await console.log("responseJson")
let tempURL = responseJson.guid
let url = tempURL.rendered
for (var i = 0; i < this.state.News.length; i++) {
const items = this.state.News;
items[number].URLOnSever = url;
}
this.state.News.push({
URLOnSever : url
})
console.log("imageurl",this.state.News.URLOnSever)
return url
}catch(e){
console.log('problem'+e)
}
}
Run Code Online (Sandbox Code Playgroud)
我只是想推送新的URL this.state.News.
我一直在使用Javascript.最近他们在ES6中增加了箭头功能,这些功能也有好处
this但是它有一些使用箭头功能的缺点:
Function原型我想问下面的事情:
Function原型?我问这个是因为mdn页面说它没有原型,但没有解释为什么它没有原型.
我阅读了Eric Elliot的这个系列文章,我认为我们正在使用javascript中的函数式编程方法,并且由于计划发布,我们是否有机会在不久的将来删除OOPS?
正如您所看到的,我正在创建一个计数器createContents并将其与传递给的数据一起使用convertToHTML:
function createContents(text, orig) {
if (orig.match(/^#{2}\s/)) {
let index = 1
, headingIndex = `item-${index++}`
, headingText = `${text.replace(/^## /gm, '')}`
text = `<p><a href=#${headingIndex}>${headingText}</p>`
console.log(text)
}
}
function convertToHTML(markdownSource) {
let data = markdownSource.split(/\n\n|^>(?!.)/gm)
, orig = data.slice()
for (let i = 0, l = orig.length; i < l; ++i) {
createContents(data[i], orig[i])
}
}
Run Code Online (Sandbox Code Playgroud)
输入看起来像这样:
## Title 1
## Title 2
Run Code Online (Sandbox Code Playgroud)
所需的输出应如下所示:
<p><a href=#item-1>Title 1</p>
<p><a href=#item-2>Title 2</p>
Run Code Online (Sandbox Code Playgroud)
但相反,我得到了这个:
<p><a href=#item-1>Title 1</p>
<p><a …Run Code Online (Sandbox Code Playgroud) 如果我说sym1 = Symbol();,Symbol功能如下工作g,
> g = function(){
| return 2; //return some random unique value based on some internal algo
| }
g()
> var sym1 = g();
> sym1
2
Run Code Online (Sandbox Code Playgroud)
现在,当我这样做var sym1 = Symbol();并记录时sym1,控制台显示Symbol()而不是显示该函数返回的值Symbol.
所以这是我的问题:该Symbol功能如何工作?Symbol()当您键入时,控制台如何显示而不是显示某些值sym1?我们可以写这样的功能吗?
我正在用Nodejs编写一个项目,我使用的是ES6.我写了一个Products在Products.js文件中命名的类:
class Products
{
...
}
Run Code Online (Sandbox Code Playgroud)
要将此类导入到另一个文件(如index.js),我使用requre('Products.js');并显示以下错误:
错误:找不到模块'Products.js'
如何在index.js中需要这个类?
var myFunc = function(x = getUndefined()){
return x
};
function getUndefined(){
return undefined
};
Run Code Online (Sandbox Code Playgroud)
我想知道为什么这会返回undefined而不是抛出某种错误.x怎么知道不要继续打电话getUndefined()?
尝试避免Component的扩展,因为组件只是呈现数据,它可以是独立的.
const CountDown = () => {
render(){
return(
<p>Countdown.jsx</p>
)
}
}
module.exports = Countdown
Run Code Online (Sandbox Code Playgroud)
但是怎么了?我得到了意想不到的令牌render(){ ... }
好吧,我试图以特定的格式返回我的所有号码
Number(parseFloat(number).toFixed(fractionalDigits || 2))
Run Code Online (Sandbox Code Playgroud)
这工作正常,但在某些情况下失败,这里有一些结果
1.111返回"1.11"和将其转换成多个IT将返回1.11如浮法这是正确的,但2.2返回"2.20"之后和将其转换成多个IT将后 2.2 我需要它是2.20如浮法
因为toFixed函数100返回"100.00"并且在将其转换为数字后将其返回到100 我需要它100.00但是作为浮点数
我怎样才能做到这一点 ?
在这里,我宣布了我的承诺
const fetchmessage= new Promise(
(resolve,reject)=>{
this.props.authStore.verifyLocalToken();
console.log("VLT Resolve");
resolve("Completed");
}
);
fetchmessage.then(this.props.inboxStore.inboxMessageFetch(mobileNumber,firebaseToken));
Run Code Online (Sandbox Code Playgroud)
以下是我的verifyLocalToken代码
verifyLocalToken() {
console.log("VerifyLT - Start");
fetch('http://xxx.xxx.xxx.xxx:8000/api/VerifyLocalToken', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: `mobileNumber=${this.mobileNumber}&key=${this.key}`
}).then((response) => response.json()).then(
(responseJson) => {
console.log("http request v l t --", responseJson);
this.firebaseToken = responseJson.firebaseToken;
}).catch(
(error) => {
console.error(error);
}
)
console.log("VerifyLT - Stop");
}
Run Code Online (Sandbox Code Playgroud)
以下是我的inboxMessageFetch代码
inboxMessageFetch(mobileNumber,firebaseToken) {
console.log("InboxFetch --", `${mobileNumber}/inbox`,firebaseToken);
firebase.database().ref(`${mobileNumber}/inbox`)
.on('value', snapshot => {
console.log('FB', snapshot.val());
})
}
Run Code Online (Sandbox Code Playgroud)
不应该 在InboxFetch …
想象一下这种情况,我将字段名称保存在这样的变量中 -
const NAME_FIELD = 'name';
Run Code Online (Sandbox Code Playgroud)
然后,我继续在这样的对象中使用它 -
let state = {
[NAME_FIELD]: 'ashwani'
}
console.log(state) // Output - { name: "ashwani" }
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都很好。现在,稍后在我的代码中,我想获取相同键的值。当然,最简单的方法是简单地使用类似state[NAME_FIELD]. 不过我正在使用解构。
通过解构,这是有效的 -
const { [NAME_FIELD]: x } = state;
console.log(x) // Output - ashwani
Run Code Online (Sandbox Code Playgroud)
但是,我的第一次尝试是这样的——
const { name } = state; // This works as expected
const { [NAME_FIELD] } = state; // I was expecting this to work too, but it didn't
Run Code Online (Sandbox Code Playgroud)
我希望上面的代码const { [NAME_FIELD] } = state;可以工作,但在其他代码工作时却没有。如果有人能帮助我理解这一点,那就太好了:)
我知道当我说const …
ecmascript-6 ×10
javascript ×10
reactjs ×3
es6-promise ×1
node.js ×1
react-native ×1
symbols ×1