인프런 커뮤니티 질문&답변

명원님의 프로필 이미지
명원

작성한 질문수

생활코딩 - Redux

action을 dispatch를 통해서 전달하기

이상한 오류가 뜹니다.

작성

·

290

0

<html>
    <head>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/redux/4.2.0/redux.min.js"></script>
    </head>
    <body>
        <div id="subject"></div>
        <div id="toc"></div>
        <div id="control"></div>
        <div id="content"></div>
        <script>
            function subject() {
                document.querySelector("#subject").innerHTML = `
                <header>
                    <h1>WEB</h1>
                        Hello, WEB!
                </header>`;
            }
            function TOC() {
                var state = store.getState();
                var i = 0;
                var liTags = "";
                while (i < state.contents.length) {
                    liTags =
                        liTags +
                        `
                        <li>
                            <a onclick="
                                event.preventDefault();
                                var action = {type:"SELECT", id:${state.contents[i].id}}
                                store.dispatch(action);
                            " href="${state.contents[i].id}">
                                ${state.contents[i].title}
                            </a>
                        </li>`;
                    i = i + 1;
                }
                document.querySelector("#toc").innerHTML = `
                <nav>
                    <ol>${liTags}</ol>
                </nav>
                `;
            }
            function control() {
                document.querySelector("#control").innerHTML = `
                <ul>
                    <li><a href="/create">create</a></li>
                    <li><input type="button" value="delete"></li>
                </ul>
                `;
            }
            function article() {
                document.querySelector("#content").innerHTML = `
                <article>
                    <h2>HTML</h2>
                    HTML is ...
                </article>
                `;
            }

            function reducer(state, action) {
                console.log(state, action);
                if (state === undefined) {
                    return {
                        contents: [
                            { id: 1, title: "HTML", desc: "HTML is .." },
                            { id: 2, title: "CSS", desc: "CSS is .." },
                        ],
                    };
                }
            }
            var store = Redux.createStore(reducer);
            subject();
            TOC();
            control();
            article();
        </script>
    </body>
</html>

코드가 이런데 위에 HTML을 누르면 강의처럼 콘솔에 뜨는게 아니라 창이넘어가면서 Cannot GET/%EB%A6%AC%EB%8D%95%EC%8A%A4/1 이런게 뜹니다 뭘 잘못한걸까요 ㅜㅜ.

답변 1

0

var action = {type:"SELECT", id:${state.contents[i].id}}

type에 "" 대신 ''로 바꿔보세요.

태크 작성이 문자열이라 문법 오류가 나네요.

다른 분들은 삽질하지 않으시길..

  • 큰따옴표 안에 큰 따옴표 X

  • 큰따옴표 안에 작은따옴표 O

  • 작은따음표 안에 큰따옴표 O

  • 작은따옴표 안에 작은따옴표 X

명원님의 프로필 이미지
명원

작성한 질문수

질문하기