Farik
Dmitriy
Та я вот ребятам выше адресовал). Самый страшный пакет реакт дом)
Александр
Если withButtonAppBar является тем чем кажется (а именно HoC’ом), то каждый рендер будет создаваться новый компонент, который будет mount/unmount-ится при каждом рендере, это обычно не то поведение что ожидается
Danila
Cenator 🐈
Preact
Как вы с багами то живете?
Danila
Aiperi_NK
Добрый день, всем! Подскажите пожалуйста на счет CORS, я внутри fetch указала url, и mode: 'no-cors' чтобы отключить, как в примере указано было, синтаксическая ошибка, все перепробовала, не получается. Заранее благодарю!
Danila
Aiperi_NK
Line 16: Parsing error: The type cast expression is expected to be wrapped with parenthesis
Danila
Aiperi_NK
пробовала и фигурные круглые скобки, не получается
Aiperi_NK
fetch('http://wow.kg/crm/api/?action=list&object=api_articles', {mode: 'no-cors'})
Andrei
хм, у меня все работает
Andrei
выдерни кусок кода, не только сам фетч @Aiperishaa
Aiperi_NK
тестирую другие url, данные выводятся на страницу, а вот когда рабочую ссылку - не отображается на странице ничего, в консоли было написано,что нужно отключить сors
Aiperi_NK
import React, {Component} from 'react';
import Contacts from '../layout/Contacts';
class Cont extends Component {
render() {
return (
<Contacts contacts={this.state.contacts} />
)
}
state = {
contacts: []
};
componentDidMount() {
fetch('http://wow.kg/crm/api/?action=list&object=api_articles', {mode: 'no-cors'})
.then(res => res.json())
.then((data) => {
this.setState({ contacts: data })
})
.catch(console.log);
}
}
export default Cont
Aiperi_NK
import React, {Component} from 'react';
import Contacts from '../layout/Contacts';
class Cont extends Component {
render() {
return (
<Contacts contacts={this.state.contacts} />
)
}
state = {
contacts: []
};
componentDidMount() {
fetch('http://wow.kg/crm/api/?action=list&object=api_articles', mode: 'no-cors')
.then(res => res.json())
.then((data) => {
this.setState({ contacts: data })
})
.catch(console.log);
}
}
export default Cont
Aiperi_NK
2й
Vadim
Andrei
фетч неправильный) сюда ты скинула правильный fetch('http://wow.kg/crm/api/?action=list&object=api_articles', {mode: 'no-cors'})
а используешь неправильный
fetch('http://wow.kg/crm/api/?action=list&object=api_articles', mode: 'no-cors')
Andrei
{mode: 'no-cors'} @Aiperishaa оберни
Danila
Andrei
@alpatovdanila мой комментарий почитай) и все поймешь почему
Aiperi_NK
Vadim
С чего это вруг?
Вторым аргументом у фетча вот такая хрень ‘mode: “no-cors”’
Andrei
Danila
Тьфу, я почему-то подумал, что речь про импорт в первой строке
Aiperi_NK
Vadim
Daniil
Откуда у Cont this.state.contacts ?
Daniil
хотя не
Andrei
@Aiperishaa перепиши инициализацию стейта таким образом
const [state,setState] = React.useState({
contacts: []
});
Daniil
лол
Vadim
Anonymous
Кто-нибудь использует уже parcel на проде? Как оно?
Vadim
Daniil
В песочнице короче кидай
Andrei
в любом случае код должен быть не таким
import React, {Component} from 'react';
import Contacts from '../layout/Contacts';
class Cont extends Component {
constructor(props){
super(props);
this.state = {
contacts: []
};
}
render() {
return (
<Contacts contacts={this.state.contacts} />
)
}
componentDidMount() {
fetch('http://wow.kg/crm/api/?action=list&object=api_articles', {mode: 'no-cors'})
.then(res => res.json())
.then((data) => {
this.setState({ contacts: data })
})
.catch(console.log);
}
}
export default Cont
Vadim
Andrei
@Aiperishaa код, который я скинул- должен быть рабочим) но не обязан :)
Daniil
То шо в конструктор стейт засунул это не изменит кейса
Andrei
Vadim
по идеи должно
То шо у нее было написано полифиллится в то что ты написал в конструктор
Daniil
Может в порядке методов и то шо стейт внизу написан, а может в ребёнке дело, а может просто в песочницу вылить
Aiperi_NK
Anonymous
Aiperi_NK
пустая страница
Aiperi_NK
В консоли выдает след. сообщение:
Vadim
Andrei
@Aiperishaa покажи компоненту-ребенка)
Aiperi_NK
import React from 'react'
const Contacts = ({contacts}) => {
return (
<div>
<center><h1>Contact List</h1></center>
{contacts.map((contact) => (
<div class="card">
<div class="card-body">
<h5 class="card-title">{contact.type}</h5>
</div>
</div>
))}
</div>
)
};
export default Contacts
Daniil
Песочница
Andrei
у тебя не приходит сразу массив оттуда) делай map по contacts.api_articles, либо( правильнее) передавай api_articles в ребенка
Andrei
@Aiperishaa перепеши свой фетч вот так
fetch("http://wow.kg/crm/api/?action=list&object=api_articles", {
mode: "no-cors"
})
.then(res => res.json())
.then(data => {
this.setState({ contacts: data.api_articles });
})
.catch(console.log);
Aiperi_NK
Ваш код скопировала, не выводится че-та также
Andrei
ошибка есть?
MVD
Andrei
для тех, кому нужна песочница.. что-то не понимаю к чему эта ошибка
https://codesandbox.io/s/little-grass-m9fls
Andrei
ох уж этот codesandbox.io
Mixed Content: The page at 'https://codesandbox.io/' was loaded over HTTPS, but requested an insecure resource 'http://wow.kg/crm/api/?action=list&object=api_articles'. This request has been blocked; the content must be served over HTTPS.
Danila
Danila
@Aiperishaa
Нужно сделать две вещи: настроить CORS на сервере так, чтобы он работал, он не просто так придуман и подавлять его неправильно. И второе - настроить https на сервере АПИ, без https вообще современные сайты делать даже стыдно, особенно если подразумевается обмен данными.
Farik
Ребят подскажите или может ссылочку скинете, как правильно шаблонизировать (layout), допустим где-то мне нужен sidebar main content, где-то нужен просто content
Andrei
Danila
Daniil
В ее случае можно и так "https://cors-anywhere.herokuapp.com/http://wow.kg/crm/api/?action=list&object=api_articles"
Andrei
Danila
Daniil
https://repl.it/repls/MajesticAccomplishedCharmap
Anonymous
Подскажите хороший пакет для валидации форм
Vadim
Anonymous
Yup
наркомания какая та. ладно попробую осилить. спасибо
Таймураз
Таймураз
Ajv
1. Стандарт
2. Сериализуется
3. Универсален
artalar