Пользовательские определения переменных внутри Apollo React Mutation Component - PullRequest
0 голосов
/ 12 октября 2018

Мой бэкэнд обрабатывает мутацию AddLike.Это берет UserId и CommentId или PitchId.В зависимости от того, что вы хотите, чтобы понравиться.Я хотел бы повторно использовать мой компонент LikeButton в течение всей аппликации. Таким образом, мне нужно определить свои переменные внутри моей Apollo React Mutation, чтобы получить CommentId или PitchID.Сейчас я не могу заставить что-либо работать.Какие-либо предложения?: -)

Вот код для компонента.API GrahQL работает.Так что ничего не изменится.

import * as React from 'react';
import { Mutation } from 'react-apollo';
import { ADD_LIKE } from '../../GraphQLStatements/GraphQLStatements'; 

interface ILikeButtonProps {
currentUser : number;
type : any;
index: number;
}

const LikeButton: React.SFC<ILikeButtonProps> = (props) => {
let inputType : string = "pitchId"

const DefineType = () => {
    if (props.type === "comment") {
        inputType = "commentId"
    }
    else {
        inputType = "pitchId"
    }
}

return (
    <Mutation mutation={ADD_LIKE}>
        {(addLike) => (
            <i className="far fa-thumbs-up icon like__button"
                onClick={e => {
                e.preventDefault();
                e.stopPropagation();
                DefineType()
                addLike({ variables : { like : 
                    { "userId": props.currentUser,
                       inputType : props.index}
                    } 
                }).then ((res : any) => {
                    console.log(res.data.addLike.statusMessage)
                });
            }}>
            </i>
        )}
    </Mutation>
 );
};

export default LikeButton;

Сейчас это не работает.Заранее спасибо!

1 Ответ

0 голосов
/ 12 октября 2018

Добавление квадратных скобок вокруг inputType сработало:

addLike({ variables : { like : 
          { "userId": props.userId,
            [inputType]: props.id}
          } 
...