Привет всем! У меня большая проблема с этого утра, но до сих пор не найдено решений.
Я создал форум, но хотел бы отображать каждую ветку из моего BDD, и каждая из них принадлежит другой ветке ( вот где я застрял) Итак, чтобы сделать это, создайте рекурсивную функцию:
export const threadLoop = (thread: { message: string; reply: any | null }) => {
console.log("thread", thread, thread.reply.length);
let resTab: JSX.Element[] = [];
let res = {};
if (thread !== null) {
resTab.push(<ForumPost postBody={thread.message} />);
if (thread.reply !== null) {
for (let index: number = 0; thread.reply.length > index; index++) {
if (thread.reply[index]) {
threadLoop(thread.reply[index]);
}
}
}
}
return {...res, ...restab};
};
это мой componentDidMount ():
componentDidMount() {
const res = this.state.posts.map(
(postBody: { message: string; reply: any | null }, index: number) => {
if (postBody.reply === null)
return <ForumPost key={index} postBody={postBody.message} />;
else if (postBody.reply !== null) {
return threadLoop(postBody);
}
}
);
this.setState({ display: res });
}
какое-то значение, которое моя функция получила сейчас (я только началось с утра, поэтому все еще получил некоторую «любую» и простую структуру):
export const threads = [
{
message: "message 1",
reply: [
{
message: "reply 1",
reply: [{ message: "reply of a reply", reply: null }],
}
],
},
{
message: "message 2",
reply: null,
},
];
Рекурсивность работает нормально до конечной точки, когда я прибыл с реквизитом: { message: "reply of a reply", reply: null }
в threadLoop()
Я получил большой refre sh в своем браузере и перезапустил (бесконечно l oop на данный момент), и я не знаю почему ... Я изменил многие шрифты так, как я это делаю, но я этого не делаю найдено решение ...
Так что, надеюсь, кто-то знаком с такой проблемой и может мне помочь. Спасибо за то, что прочитал это и понял, что не так! хорошего дня!